我正在用Java編寫一個事件系統,並且在編寫Listener部分時遇到了一個問題。在Java中可能有無限數量的類型參數嗎?
這是我目前Listener
類:
public interface Listener<E extends Event<?>> {
public void handleEvent(E event);
}
我要保持它的可擴展的,我可以有一個監聽器類,可靈活的任何事件類型,即Listener<Foo>
和Listener<Bar>
而不是FooListener
方式和BarListener
,但我也希望實現類能夠收聽多個事件。
我的問題是,一個類不能有兩個不同類型的參數,可以實現監聽器類。
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
}
Definitly沒有。在現實世界中一切都是有限的;) - 可變參數是通過數組實現的,所以參數的最大數目是'Integer.MAX_VALUE' –