如何在java中创建自定义监听器?

2022-09-01 03:51:31

我想知道如何在java中设置我们自己的听众。例如,我有一个函数,它将数字从1递增到100。我想在值达到50时设置一个监听器。我该怎么做?请建议我任何教程。


答案 1

https://stackoverflow.com/a/6270150/3675925

您可能希望查看观察者模式

下面是一些示例代码,可帮助您入门:

import java.util.*;

// An interface to be implemented by everyone interested in "Hello" events
interface HelloListener {
    void someoneSaidHello();
}

// Someone who says "Hello"
class Initiater {
    private List<HelloListener> listeners = new ArrayList<HelloListener>();

    public void addListener(HelloListener toAdd) {
        listeners.add(toAdd);
    }

    public void sayHello() {
        System.out.println("Hello!!");

        // Notify everybody that may be interested.
        for (HelloListener hl : listeners)
            hl.someoneSaidHello();
    }
}

// Someone interested in "Hello" events
class Responder implements HelloListener {
    @Override
    public void someoneSaidHello() {
        System.out.println("Hello there...");
    }
}

 

class Test {
    public static void main(String[] args) {
        Initiater initiater = new Initiater();
        Responder responder = new Responder();

        initiater.addListener(responder);

        initiater.sayHello();  // Prints "Hello!!!" and "Hello there..."
    }
}

答案 2

查看使用侦听器的任何类的源。事实上,这很容易:

  • 为监听器创建一个接口,例如MyListener
  • 维护列表MyListener
  • 在侦听器应侦听的每个事件上,循环访问列表并使用某些事件参数调用适当的方法

至于观察者模式以及一些Java代码,请查看维基百科