我在编写 GWT 应用程序时在 Eclipse 中遇到此错误
The interface Observer cannot be implemented more than once with different arguments: Observer<CompositeListData > and Observer<DialogBoxAuthenticate>
public class CompositeWordLists extends Composite implements Observer<DialogBoxAuthenticate>, Observer<CompositeListData>
这是界面
public interface Observer<T> {
public void update(T o);
}
这样对吗?如何在不必为每个可能的事件创建大量观察者类的情况下解决这个问题?
最佳答案
由于类型删除,您不能两次实现相同的接口(interface)(使用不同的类型参数)。因此,您收到的 eclipse 错误是正确的。
您可以为所有可能的“T”添加一个基类,根据这些类的范围,这可能具有限制性且无用。而且,您已经请求了一个解决方案来阻止您为每个可能的事件创建大量观察者类(我假设是接口(interface)),我看不出在不损害编译时安全的情况下您还能如何做到这一点。
我建议如下
interface Observer<T>{
public void update (T o);
}
interface DialogBoxAuthenticateObserver extends Observer<DialogBoxAuthenticate>{
}
代码困惑并不可怕,如果将它们全部放在一个文件中,它们将很容易引用和维护。希望我有帮助
编辑:在谷歌上进行了一些挖掘之后(这让我回到了 stackoverflow!,你的问题以不同的方式被问到并且得到了类似的回答 here
关于java - 获取通用接口(interface) : The interface Observer cannot be implemented more than once with different arguments: 的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4282437/