是否可以使用回调设置多个侦听器?
我试图了解回调的工作方式,并试图找出这就是我所需要的。
我有一个UDP消息传递类,用于接收/发送消息。当我解析某些消息时,我想更新多个UI类。
目前,我有这样的事情:
class CommInt {
private OnNotificationEvent notifListener;
public setNotificationListener(OnNotificationEvent notifListner) {
/* listener from one UI */
this.notifListener = notifListener;
}
private parseMsg(Message msg) {
if (msg.getType() == x) {
notifListener.updateUI();
}
}
}
我还需要更新另一个UI。其他UI将使用相同的界面,但主体将有所不同。
如何调用从该接口实现的所有侦听器?
最佳答案
您很有可能需要制作一个侦听器列表,然后遍历每个调用updateUI()
的对象。当然,您还需要addListener()
方法,以免覆盖。
class CommInt {
private List <OnNotificationEvent> listeners= new ArrayList <OnNotificationEvent>();
public void addNotificationListener(OnNotificationEvent notifListner) {
listeners.add (notifListener);
}
private void parseMsg(Message msg) {
if (msg.getType() == x) {
for (notifListener : listeners){
notifListener.updateUI();
}
}
}
}