Java class with two standard parameters

I am trying to create my own event stream, but I get an error E cannot be resolved to a type in the class declaration line below. How can i fix this?

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> { /* ... */ } 
+4
source share
1 answer

You only declared one type parameter in Observers . Try the following:

 public final class Observers<E extends EventArgs, T extends EventHandler<E>> { 

Note that for your Observers class, it looks very strange to declare your own nested EventHandler interface when implementing an external one - if you really need both of them, I would suggest you rename one of them.

+12
source

All Articles