我正在用 Java 制作一个事件系统,但在编写 Listener 部分时遇到了问题。
这是我目前的Listener
课程:
public interface Listener<E extends Event<?>> {
public void handleEvent(E event);
}
我想保持它的可扩展性,使我可以拥有一个可以灵活适应任何事件类型的 Listener 类,即Listener<Foo>
andListener<Bar>
而不是FooListener
and BarListener
,但我也希望实现类能够监听多个事件。
我的问题是一个类不能用两个不同的类型参数实现 Listener 类。
public class MultiListener implements Listener<Foo>, Listener<Bar> {
// does not work
}
我知道一个方法可能有无限数量的参数,如下所示:
public void toInfinityAndBeyond(String... lotsOfStrings) {
}
但是我的Listener
班级可以有无限数量的类型参数来监听多个事件吗?
public class MultiListener implements Listener<ThisEvent, ThatEvent, AnotherEvent> {
// hypothetical
}