我正在尝试创建我自己的线程安全事件处理但是我在下面的类decleration行上出现E cannot be resolved to a type
错误。我该如何解决这个问题?
Observers.java
public final class Observers<T extends EventHandler<E>> {
private CopyOnWriteArrayList<T> mListeners = new CopyOnWriteArrayList<T>();
public interface EventHandler<E> {
public void HandleEvent(Object sender, E e);
}
/*...*/
public void dispatchEvent(Object sender, E args) {
/*...*/
}
}
EventHandler.java
public interface EventHandler<E extends EventArgs> {
/* ... */
}
答案 0 :(得分:12)
您只有实际在Observers
中声明了一个类型参数。试试这个:
public final class Observers<E extends EventArgs, T extends EventHandler<E>> {
请注意,Observers
类在实现外部接口时声明其自己的嵌套EventHandler
接口看起来高度奇怪 - 如果你真的需要这两个,我建议你重命名其中一个。