我是java中的新手。我想更多地了解java事件处理的工作原理。所以我需要一个简单的例子来演示java中的自定义回调。应该是类似2个或更多类的东西可以在回调系统中注册。当某些事件发生时[每20秒钟一次计时器滴答]注册的班级必须收到通知。我找到了很多解释java回调的例子,但我正在寻找一个简单的例子。有人可以帮我吗? 非常感谢提前。
答案 0 :(得分:0)
以下是工作中回调的一个非常简单的例子:
public class Timer {
private final List<Runnable> callbacks = new ArrayList<>();
public void onTick(Runnable r) { synchronized (callbacks) { callbacks.add(r); } }
public void start() {
new Thread(() -> {
try {
while (true) {
synchronized (callbacks) {
callbacks.forEach(Runnable::run);
}
Thread.sleep(TimeUnit.SECONDS.toMillis(3));
}
} catch (InterruptedException e) {}
}).start();
}
public static void main(String[] args) {
final Timer t = new Timer();
t.onTick(() -> System.out.println("Ide vrijeme, prođe rok"));
t.onTick(() -> System.out.println("Eto vraga skok na skok"));
t.start();
}
}
我希望这很简单,不言自明。