在博客文章《 应用JDK 9 @Deprecated增强功能》中 ,我讨论了JDK 9中 @Deprecated批注中对forRemoval()和since()可选元素(方法)的添加 。 我在那篇文章中说:“在Java SE API上应用新的JDK 9 @Deprecated方法也可以指导如何使用它们。” 在本文中,我将研究增强的@Deprecated批注对JDK类java.util.Observable的应用 。

几乎从一开始就存在java.util.Observable类(自Java 1.0起)。 从JDK 9开始,它将被标记为已弃用。 以下屏幕快照显示了Web浏览器中此类的Javadoc表示形式的一部分。

这是我上一篇博文中描述的 “不建议删除计划”类别中的一个类的示例。 since()的存在提供了有关何时不推荐使用的信息(JDK 9),而缺少forRemoval()表明缺少具体的计划来实际删除该类。 还以类似的方式弃用了java.util.Observer接口 ,并且其文档引用了Observable类的文档。

Observable文档不仅在不推荐使用时进行中继,而且还记录了Observable的问题,这些问题使不推荐使用,并提供了有关可能使用的替代方案的重要信息,而不是Observable


此类和Observer接口已被弃用。 Observer和Observable支持的事件模型非常有限,Observable传递的通知顺序未指定,并且状态更改与通知不一一对应。 对于更丰富的事件模型,请考虑使用java.beans包。 为了在线程之间进行可靠且有序的消息传递,请考虑使用java.util.concurrent包中的并发数据结构之一。 有关React式流样式的编程,请参见Flow API。

这是一个很好的示例,说明Java开发人员如何使用Javadoc标记@deprecated来提供与弃用相关的更详细的信息,即使使用增强的@Deprecated注释也无法提供。 JEP 277 (“增强的弃用”)明确列出了统一的Javadoc标签@deprecated和注释@Deprecated为“非目标”:“该项目的目标不是将@deprecated的Javadoc标签与@Deprecated注释统一。 ”

可以弃用ObservableObserver其他详细信息可以在JDK-8154801中找到(“弃用Observer和Observable”)。 Josh Bloch 于19992月发表了一个引用,作为JDK-4180466的一部分(“为什么java.util.Observable类无法序列化。”):


此类不再处于积极开发中。 它在JDK中基本上未使用,并且在大多数情况下已被1.1 Beans / AWT事件模型取代。 …可观察性已被废弃,并且不再活跃。

在大多数情况下,似乎ObserverObservable的使用并不多 ,因此弃用不应该是一个大问题,尤其是考虑到没有明确的计划将其完全删除时。

翻译自: https://www.javacodegeeks.com/2017/05/javas-observer-observable-deprecated-jdk-9.html

JDK 9中不推荐使用Java的Observer和Observable相关推荐

  1. JDK 9中已弃用Java的Observer和Observable

    在博客文章< 应用JDK 9 @Deprecated增强功能>中 ,我讨论了JDK 9中 @Deprecated批注中对forRemoval()和since()可选元素(方法)的添加 . ...

  2. Java平台,标准版Oracle JDK 9中的新功能

    Java平台,标准版 Oracle JDK 9中的新增功能 版本9 E77563-05 2017年9月 JDK 9中的新功能概述 Java Platform,Standard Edition 9是一个 ...

  3. day01--java基础编程:计算机基础知识 ,java语言概述,java开发环境搭建,eclipse概述,创建简单java项目,JDK JRE JVM的关系,java开发中的命名规范,编程风格

    1 Day01–Java开发环境+HelloWorld 1.1 计算机基础知识 资料下载网址:刘沛霞 18600949004 code.tarena.com.cn tarenacode code_20 ...

  4. win10安装JDK cmd中可以运行java,但不能用javac,解决方案

    win10安装JDK cmd中可以运行java,但不能用javac,解决方案 参考文章: (1)win10安装JDK cmd中可以运行java,但不能用javac,解决方案 (2)https://ww ...

  5. JDK中提供的实现——通过 java.util.Observable 类和 java.util.Observer 接口定义了观察者模式,只要实现它们的子类就可以编写观察者模式实例

    JDK中提供的实现 在 Java 中,通过 java.util.Observable 类和 java.util.Observer 接口定义了观察者模式,只要实现它们的子类就可以编写观察者模式实例. 1 ...

  6. Nashorn——在JDK 8中融合Java与JavaScript之力--转

    原文地址:http://www.infoq.com/cn/articles/nashorn 从JDK 6开始,Java就已经捆绑了JavaScript引擎,该引擎基于Mozilla的Rhino.该特性 ...

  7. JDK 6中新增的Java Console类功能概览

    转载自  JDK 6中新增的Java Console类功能概览 JDK 6中提供了java.io.Console类专用来访问基于字符的控制台设备.如果你的Java程序要与Windows下的cmd或者L ...

  8. java build failed_java - maven build failed:无法在jre或jdk issu中找到Javac编译器

    java - maven build failed:无法在jre或jdk issu中找到Javac编译器 我将JAVA_HOME设置为 C:\Program Files (x86)\Java\jdk1 ...

  9. Java大神推荐,java编程基础必备(必看)

    在没有以前的操作习惯的错误情况下,反而容易接受新知识,所以不要因为自己对java一无所知而自卑,相反,这是菜鸟们的优势,但是如何才能从一个菜鸟历练成大神呢,当然是需要学习了,不学习就想成为大神,就是在 ...

最新文章

  1. 人工智能的挑战远未到来
  2. 第2篇 C#数据类型-值类型与引用类型
  3. there are no packages available for installation插件安装问题和如何配置浏览器的快捷键...
  4. C#项目开发系统开发进度-第X组-xxx(简单)
  5. 前端学习(749):函数两种声明方式
  6. Medusa 又一个 Shopify 的开源替代品!
  7. 对微服务监控系统分层和监控架构的理解
  8. 全通教育回应深交所:巴九灵年赚7500万 没有吴晓波依然正常运作
  9. Day 5-7 exec 和元类的创建.
  10. 软件测试的起源;什么是软件测试-定义、类型、方法?
  11. 极简代码(一) —— class label 的统计计数
  12. windows双系统完全删除ubuntu
  13. 你有梦想吗?华为云学院助你实现梦想
  14. latex normal是几号字_LaTeX 中英文字体字号设置
  15. 小学计算机课题研究方案,小学语文课题研究方案
  16. dockers 赋权
  17. 腾讯云+CentOS 7.2+python:搭建微信公众号后台入门教程
  18. 在线分析网站日志软件-免费分析网站蜘蛛的软件
  19. 中美知识产权博弈:保护力度标准成最大分歧
  20. Qt error: /usr/bin/ld: cannot find -lGL: No such file or directory

热门文章

  1. 牛客网CSP-S提高组赛前集训营1题解(仓鼠的石子游戏 [博弈论] + 乃爱与城市的拥挤程度 [树上DP] + 小w的魔术扑克[dfs + 离线])
  2. 洛谷P3338:力(FFT)
  3. P6805-[CEOI2020]春季大扫除【贪心,树链剖分,线段树】
  4. CF878E-Numbers on the blackboard【并查集,贪心】
  5. [2020.11.27NOIP模拟赛]中位数之中位数【二分,树状数组】
  6. P2839-[国家集训队]middle【主席树,二分】
  7. bzoj2111,P2606-[ZJOI2010]排列计数【Lucas,组合计数,dp】
  8. AtCoder Grand Contest 025
  9. Nacos(十一)之NacosSync 介绍
  10. Sentinel(六)之集群流控