java – 获取泛型接口的错误:接口Observer不能使用不同的参数多次实现:

我在编写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);
}

这是正确的吗?如何在不必为每个可能的事件创建大量Observer类的情况下解决此问题?

最佳答案
由于类型擦除,您无法两次实现相同的接口(具有不同的类型参数).所以,你收到的日食错误是正确的.

您可以为所有可能的“T”添加基类,这可能是限制性的,并且根据这些类的范围而无用.并且,您已经请求了一个解决方案,可以阻止您为每个可能的事件创建大量的Observer类(我假设接口),我不知道如何在不影响编译时安全的情况下做到这一点.

我建议如下

interface Observer<T>{
    public void update (T o);
}

interface DialogBoxAuthenticateObserver extends Observer<DialogBoxAuthenticate>{
}

代码混乱并不可怕,如果将它们全部放在一个文件中,它们将很容易引用和维护.希望我有所帮助

编辑:经过一些挖掘谷歌(它指向我回到stackoverflow !,你的问题以不同的方式被问到并回答类似here

转载注明原文:java – 获取泛型接口的错误:接口Observer不能使用不同的参数多次实现: - 代码日志