我使用的是观察者,试图修复我的代码时,观察者收到错误消息,然后按Alt + enter快速修复它,现在它像这样被划掉了:
老实说,我不知道我是如何做到的,也不知道如何恢复它。如果有任何方法可以还原我所做的工作,请告诉我。
答案 0 :(得分:0)
Observer
上的划线表示它已弃用。
您可以在导入列表中进行检查,然后在其中找到包含观察者的导入。有人说,它已过时,您不应再实现Observer
和Observable
。
如何here不推荐使用它。
它们没有为应用程序提供足够丰富的事件模型。例如,他们只能支持某些更改的概念,但不传达有关更改的任何信息。
也许,可以使用侦听器模式,而不是使用观察器,因为它们都是相似的。
但是观察者有一个弱点:所有可观察的事物都是相同的。您必须实现基于instanceof
的逻辑,并将对象转换为具体类型到Observable.update()
方法中。
侦听器不同。侦听器类型很多。例如鼠标侦听器,键盘侦听器等。每个侦听器都有几种回调方法(即keyPressed()
,keyReleased()
等)。因此,您无需在事件处理程序中实现应回答“是我的事件”这一问题的逻辑。
我认为这就是为什么最好使用监听器模型的原因。
要添加一个could not serialize the Observable
类之类的错误,因为它没有实现Serializable
接口,并且其所有成员都是私有的。
有什么更好的替代方法?
另一方面,`监听器有很多类型,它们具有回调方法,不需要强制转换。正如@Ravi在他的回答中指出的那样,您可以改为使用PropertyChangeListener。
对于其余部分,@Deprecation
已标记有适当的文档,以探索与其他答案相关联的其他软件包。
希望有帮助。