gpt4 book ai didi

java - 使用泛型来处理事件

转载 作者:行者123 更新时间:2023-12-01 15:42:41 26 4
gpt4 key购买 nike

我有几个事件(以及每个事件的监听器)。我想,而不是这个:

private void alertListeners(EventType1 ev){
for(EventType1Listener el : et1Listeners){
el.handle(ev);
}
}
private void alertListeners(EventType2 ev){
for(EventType2Listener el : et2Listeners){
el.handle(ev);
}
}
private void alertListeners(EventType3 ev){
for(EventType3Listener el : et3Listeners){
el.handle(ev);
}
}

有更多类似的东西:

private <T extends MyEventTypeSuperclass> void alertListeners(T ev)

除了我不知道如何实际编写 for 循环代码...是否可以做我想做的事情,或者我必须编写一堆几乎相同的方法?

最佳答案

那么,为什么不将监听器内容封装到专用类中呢?

public class Observable<E> {
private List<Listener<E>> listeners = new ArrayList<L>();

public void subscribe(Listener<E> listener) {
listeners.add(listener);
}

public void alert(E e) {
for (Listener<E> l : listeners) {
l.handle(e);
}
}
}

并在提供事件的类型中:

public final Observable<String> messageChannel = new Observable<String>();

public final Observable<Integer> resultChannel = new Observable<Integer>();

关于java - 使用泛型来处理事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7776131/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com