我试图在gui课程中注意通知注册观察员。
public class GUI extends javax.swing.JFrame implements Observer {
public notImportantMethod() {
t = new Thread() {
@Override
public void run() {
for (int i = 1; i <= 10; i++) {
myObject.registerObserver(this);
}
}
};
t.start();
}
}
它给了我错误:不兼容的类型:无法转换为Observer 我该如何使用它?我知道在运行中有另一个上下文,但我怎么能访问它?
答案 0 :(得分:3)
GUI.this
现在引用一个Thread。您应该可以致电const event = $rootScope.$on('notifications.updated', (event, notifications) => {
const notification = notifications ? notifications.values().next().value : null;
if (notification) {
_setNotification(notification);
} else {
_resetNotification();
}
vm.enabled = !!notification;
});
。有关详细信息,请参阅 here 。
答案 1 :(得分:0)
如果你正在寻找快速和肮脏的东西:(这不是好习惯)
public notImportantMethod() {
final GUI self = this;
t = new Thread() {
@Override
public void run() {
for (int i = 1; i <= 10; i++) {
myObject.registerObserver(self);
}
}
};
t.start();
}
}
否则我建议在java中查找有关多线程和/或并发的教程,如下所示:http://winterbe.com/posts/2015/04/30/java8-concurrency-tutorial-synchronized-locks-examples/
答案 2 :(得分:0)
@Ishnark已正确回答。您应该可以通过GUI.this
访问它,这就是您需要做的所有事情。