KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
Update: Thanks for everyone who helped out - the answer to this one lay in what I wasn't noticing in my more complex code and what I didn't know about the Java5 covariant return types. Original Post: I've been playing around with something this morning. While I know that I could tackle this whole problem differently, I'm finding myself obsessed with figuring out why it isn't working the way that I was expecting. After spending some time reading around on this, I find I'm no closer to understanding, so I offer it up as a question to see if I'm just being stupid or if there is really something I don't understand going on here. I have created a custom Event hierarchy like so: public abstract class AbstractEvent<S, T extends Enum<T>> { private S src; private T id; public AbstractEvent(S src, T id) { this.src = src; this.id = id; } public S getSource() { return src; } public T getId() { return id; } } With a concrete implementation like so: public class MyEvent extends AbstractEvent<String, MyEvent.Type> { public enum Type { SELECTED, SELECTION_CLEARED }; public MyEvent(String src, Type t) { super(src, t); } } And then I create an event like so: fireEvent(new MyEvent("MyClass.myMethod", MyEvent.Type.SELECTED)); Where my fireEvent is defined as: protected void fireEvent(MyEvent event) { for(EventListener l : getListeners()) { switch(event.getId()) { case SELECTED: l.selected(event); break; case SELECTION_CLEARED: l.unselect(event); break; } } } So I thought that this would be pretty straightforward but it turns out that the ca
Tags (comma-separated)
Save Edits
Cancel