-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
_“非抽象接口”_ - 也没有这样的事情。你的意思是“非通用”吗? –