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

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

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

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

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

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 listeners = new ArrayList(); 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..." } } 

没有内置机制允许您将侦听器附加到所有变量。 您想要观察的对象需要自己提供支持。 例如,它可能变为Observable并触发onChange事件给它的Observers(你也必须确保跟踪它)。

我建议您使用EventBus作为用例。 它有一个很好的API设计,易于使用。 看看他们的入门部分,看看它是如何工作的。