私はJavaジェネリックを学び、誰かが尋ねる前にイベントに実装しようとしているので、ポリモーフィズムの使用を検討しましたが、すべてのイベントがハンドラーのstartメソッドに異なる値を送信するようにしたいので、これを行うことはできません。
これは私のイベントハンドラーです:
public class MyHandler {
public void startEventAction(int num) {
//do something with num
}
}
これは私のテンプレートイベントです:
public abstract class SomeEvent<E> {
protected List<E> handler_list = new LinkedList<E>();
public SomeEvent() {
}
public Boolean addHandler(E handler) {
return handler_list.add(handler);
}
public Boolean removeHandler(E handler) {
return handler_list.remove(handler);
}
}
イベント自体は次のとおりです:(このようにSomeEventを拡張するのはおそらく間違っていることはわかっていますが、機能しているようです)
public class MyEvent<MyHandler> extends SomeEvent<MyHandler> {
public void executeHandlers() {
for (MyHandler handler : handler_list) {
//Exception here!!
handler.startEventAction(num);
}
}
}
私の質問は、それを拡張するのがどのように正しいのか、そして最後のコードブロック(MyEventの場合)のMyHandlerに関数startEventActionが存在しないのはなぜですか?回答は非常に高く評価されます。