I discovered a strange problem when I used the Generics Today class: setting some broke an entirely separate method.
Here is a small sample class that illustrates the problem. This code works just fine
public class Sandbox {
public interface ListenerManagerTest {
public Set<Listener> getListeners();
}
public void setListenerManager(ListenerManagerTest listenerManager) {
for (Listener curListener : listenerManager.getListeners())
return;
}
}
Now when I use the Generics class, the method getListeners()returns Set<Object>insteadSet<Listener>
public class Sandbox {
public interface ListenerManagerTest<E extends Object> {
public Set<Listener> getListeners();
}
public void setListenerManager(ListenerManagerTest listenerManager) {
for (Listener curListener : listenerManager.getListeners())
return;
}
}
What can cause this error? The channel ##javaon Freenode said it was due to compilation, and I used the raw type. But how would the class type raw break all generics in the class? And how would you work earlier?
Thelq source
share