将事件/回调绑定到Java中的关键字

Nei*_*eiL 5 java events event-handling

我是来自 javascript 背景的 Java 新手。

在 javascript 中,我们可以将回调保存在像这样的对象中 -

//we register some callback on a keyword
    var observerCallbacks = {};
     registerObserverCallback = function(eventname ,callback){
                observerCallbacks[eventname] =  callback;
            };
//For calling events
    notifyObservers = function(eventname){         
         observerCallbacks[eventname]();                               
            };
Run Code Online (Sandbox Code Playgroud)

用法 :

//Register event 
      registerObserverCallback('eventA',function(){
          //body of callback  
     });

//For calling event
notifyObservers('eventA');
Run Code Online (Sandbox Code Playgroud)

我正在寻找 Java 中的同等功能。有没有办法创建这种类型的自定义功能。

Alp*_*Alp 3

Java 为此目的有一个稍微不同的机制。对象将自身注册为特定类型事件的侦听器。当此类事件发生时,所有侦听器都会收到通知。

在这里您可以找到有关它的教程。下面的代码来自那里。

public class MultiListener ... implements ActionListener {
    ...
    //where initialization occurs:
        button1.addActionListener(this);
        button2.addActionListener(this);

        button2.addActionListener(new Eavesdropper(bottomTextArea));
    }

    public void actionPerformed(ActionEvent e) {
        topTextArea.append(e.getActionCommand() + newline);
    }
}

class Eavesdropper implements ActionListener {
    ...
    public void actionPerformed(ActionEvent e) {
        myTextArea.append(e.getActionCommand() + newline);
    }
}
Run Code Online (Sandbox Code Playgroud)

有关此主题的更多信息可以在这里找到