- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在使用 SWT 小部件编写 Java 应用程序。我想在某个事件发生时更新某些小部件的状态(例如,更新数据模型的状态)。
Java 中是否有类似于 Cocoa 的 NSNotificationCenter 的东西,我可以在其中注册一个对象来监听通知事件并响应它们,以及让其他对象“触发”通知?
最佳答案
好的,例如,假设您希望程序的某些部分在您的 Loader 开始扫描和完成扫描时得到通知(不要担心什么是 Loader,或者什么是扫描,这些是我上一份工作中留下的一些代码的例子)。您定义一个接口(interface),将其称为“ScanListener”,例如
public interface ScanListener
{
public void scanStarted();
public void scanCompleted();
}
现在 Loader 为您的其他代码定义了一个方法来注册回调,例如
public void addScanListener(ScanListener listener)
{
listeners.add(listener);
}
Loader,当它开始扫描时,执行下面的代码
for (ScanListener listener : listeners)
{
listener.scanStarted();
}
当它完成时,它对 listener.scanCompleted() 做同样的事情;
需要通知这些事件的代码实现了该接口(interface)(它们自己或在内部类中),并调用“loader.addScanListener(this)”。它的 scanStarted() 和 scanCompleted() 方法在适当的时候被调用。您甚至可以使用带有参数和/或返回结果的回调来执行此操作。一切由您决定。
关于Java 等同于 Cocoa NSNotification?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/488919/
判断这2个相似的Uris实际上相同的标准方法是什么? var a = new Uri("http://sample.com/sample/"); var b = new Uri("http://sam
这个问题在这里已经有了答案: Why does "true" == true show false in JavaScript? (5 个答案) 关闭 5 年前。 可能我很困惑,但我无法理解这个愚蠢
我是一名优秀的程序员,十分优秀!