当前位置: 首页 > 知识库问答 >
问题:

在Java9中不推荐使用Observer。我们应该用什么来代替它呢?

濮阳鸿卓
2023-03-14

Java9问世了,observer已经被废弃。为什么会这样?这是否意味着我们不应该再实现观察者模式了?

知道什么是更好的替代方案会很好?

共有1个答案

许沛
2023-03-14

为什么会这样?这是否意味着我们不应该再实现观察者模式了?

先回答后一部分--

是的,这确实意味着您不应该再实现observerobervable了。

还有什么更好的替代方案呢?

另一方面,监听器有很多类型,它们有回调方法,不需要强制转换。正如@Ravi在他的回答中指出的,您可以使用PropertyChangeListener

对于它的其余部分,@deprecation已经用适当的文档标记,以探索其他答案中链接的其他包。

编辑:还值得一提的是,对API的废弃不仅仅是因为上述原因,还因为无法维护遗留代码,就像一些bug报告(链接在上面)的注释中提到的那样,这些报告是为了以这样或那样的方式标记其实现的改进而提出的。

 类似资料:
  • 我想在该区域中添加条件格式,但我在教程中看到的一种方法不建议使用。用什么来代替它。样品:

  • 问题内容: 面试官问我: 什么是Observer,什么Observable时候应该使用它们? 我并不了解这些术语,因此当我回到家并开始使用GoogleObserver和Google搜索时Observable,从不同的资源中发现了一些要点: 1)Observable是一个类,Observer是一个接口。 2)Observable该类维护一个Observers的列表。 3)当一个Observable对

  • 问题内容: 看看这个: 我运行了一个快速的Google搜索,但找不到答案- 我应该用什么代替? 问题答案: 由于django 1.7 引入的迁移系统而被弃用。 现在,您可以使用 跟踪 更改。这会将您的模型更改转换为python代码,以使其可部署到另一个数据库。当您需要对数据库进行进一步的修改时,可以使用数据迁移。 创建迁移后,您必须 应用 它们:。 因此,除了使用之外,您还应该使用然后。 更改模型

  • 问题内容: 看看这个: 问题答案: 由于django 1.7引入的迁移系统而被弃用。 现在,你可以使用跟踪更改。这会将你的模型更改转换为python代码,以使其可部署到另一个数据库。当你需要对数据库进行进一步的修改时,可以使用数据迁移。 创建迁移后,你必须应用它们:。 因此,除了使用之外,你还应该使用然后。 更改模型中的某些内容后,开发工作流程如下: 在你的生产系统上: 奖励:你无需migrate

  • 本文向大家介绍为什么在Bash中应该避免eval,我应该用什么来代替呢?,包括了为什么在Bash中应该避免eval,我应该用什么来代替呢?的使用技巧和注意事项,需要的朋友参考一下 eval是Bash shell的内置命令,它将其参数连接为单个字符串。然后,它将参数与空格连接起来,然后将该字符串作为bash命令执行。以下是其工作方式的示例。 eval示例 在下面的示例中,我们使用一个字符串,该字符串

  • 问题内容: 现在我正在使用类似 我需要您的意见以最好/最有效的方式对密码进行加密,当然,加密的密码应受PHP 7.xx支持,并且也应可解密,因为我的客户确实希望选择“恢复”密码而不生成新密码一。 问题答案: 最佳做法是对密码进行哈希处理,以使密码不可解密。这使可能已获得对数据库或文件的访问权限的攻击者的处境变得更加困难。 如果必须加密数据并使其可解密,请访问https://paragonie.co