-1
通用接口我有一個接口IEvent,看起來像這樣:類型檢測,在Java
public abstract interface IEvent<T> {
public abstract void handleEvent(T payload);
}
,並用具體的泛型類型,看起來像這樣2個接口:
public interface IKeyDownEvent extends IEvent<KeyDownEventPayload> {}
public interface IKeyUpEvent extends IEvent<KeyUpEventPayload> {}
兩個KeyUpEvent和KeyDownEvent正在從EventPayload擴展。
我該如何去遍歷一個ArrayDeque,並且只爲實現IKeyDownEvent的類調用handleEvent(),但不是例如IKeyUpEvent?
我試過,但它似乎不工作:
if (payload.getClass() == ev.getClass().getGenericSuperclass())
ev.handleEvent(payload);
_「具體接口」_ - 對不起,沒有這樣的事情。接口不能是「具體的」。你考慮過'instanceof'嗎? –
@JimGarrison看起來很明顯,OP指的是非抽象接口。 – nicomp
_「非抽象接口」_ - 也沒有這樣的事情。你的意思是「非通用」嗎? –