JDK 9中不推荐使用Java的Observer和Observable
在博客文章《 應用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注釋統一。 ”
可以棄用Observable和Observer其他詳細信息可以在JDK-8154801中找到(“棄用Observer和Observable”)。 Josh Bloch 于1999年2月發表了一個引用,作為JDK-4180466的一部分(“為什么java.util.Observable類無法序列化。”):
此類不再處于積極開發中。 它在JDK中基本上未使用,并且在大多數情況下已被1.1 Beans / AWT事件模型取代。 …可觀察性已被廢棄,并且不再活躍。
在大多數情況下,似乎Observer和Observable的使用并不多 ,因此棄用不應該是一個大問題,尤其是考慮到沒有明確的計劃將其完全刪除時。
翻譯自: https://www.javacodegeeks.com/2017/05/javas-observer-observable-deprecated-jdk-9.html
總結
以上是生活随笔為你收集整理的JDK 9中不推荐使用Java的Observer和Observable的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 璀璨宝石中文电脑版(璀璨宝石官方电子版)
- 下一篇: 电脑共享可以不启用guest(电脑高级共