Java AddObserver(this) 在 static main 中
Java AddObserver(this) when in static main
所以我有一个声明为 public class Main implements Observer{}
的函数,里面有主函数 public static void main(String[] args) {}
,在里面,我想做这个 ObservableClass.addObserver(this)
。但是由于 main 是 static
我无法做到这一点,并且向 Main class 添加一个方法也不会解决问题,因为它将从 static
调用反正功能。
基本上我希望 Main class
成为一个观察者并实现一个方法 update()
。
有人知道实现这个的方法吗?谢谢。
它应该是这样的:
public class Main implements Observer {
@Override
public void update(Observable o, Object arg) {
// ...
}
public static void main(String[] args) {
// ...
observable.addObserver(new Main());
}
}
main
方法最好移到另一个class,
它唯一的工作就是启动主应用程序。
在 Observer
实现中使用 main
方法启动应用程序看起来很可疑地违反了 single responsibility principle.
换句话说,Main
不应该实现 Observer
。应该是另一个实现了Observer
的class。 Main
class 应该只有一个 main
方法,配置并启动应用程序,什么都不做。
所以我有一个声明为 public class Main implements Observer{}
的函数,里面有主函数 public static void main(String[] args) {}
,在里面,我想做这个 ObservableClass.addObserver(this)
。但是由于 main 是 static
我无法做到这一点,并且向 Main class 添加一个方法也不会解决问题,因为它将从 static
调用反正功能。
基本上我希望 Main class
成为一个观察者并实现一个方法 update()
。
有人知道实现这个的方法吗?谢谢。
它应该是这样的:
public class Main implements Observer {
@Override
public void update(Observable o, Object arg) {
// ...
}
public static void main(String[] args) {
// ...
observable.addObserver(new Main());
}
}
main
方法最好移到另一个class,
它唯一的工作就是启动主应用程序。
在 Observer
实现中使用 main
方法启动应用程序看起来很可疑地违反了 single responsibility principle.
换句话说,Main
不应该实现 Observer
。应该是另一个实现了Observer
的class。 Main
class 应该只有一个 main
方法,配置并启动应用程序,什么都不做。