我想知道如何在java.For中设置我们自己的侦听器,例如我有一个将数字从1递增到100的函数。当该值达到50时,我想设置一个监听器。我该怎么做呢?请给我推荐一些教程。
发布于 2016-04-16 18:24:03
https://stackoverflow.com/a/6270150/3675925
您可能需要查看observer pattern。
下面是一些示例代码,可以帮助您入门:
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..."
}
}
发布于 2011-08-04 20:29:14
没有内置的机制允许您将侦听器附加到所有变量。你想要监视的对象需要自己提供支持。例如,它可以成为可观察的,并向它的观察者发出onChange事件(您还必须确保它被跟踪)。
发布于 2011-08-04 20:36:43
我建议在您的用例中使用EventBus。它有一个很好的API设计,并且易于使用。看看他们的Getting Started部分,看看它是如何工作的。
https://stackoverflow.com/questions/6941321
复制相似问题