JDK 8中的Oracle Drops Collection文字
在OpenJDK JEP 186上的一個(gè)帖子中,Oracle的Brian Goetz通知Oracle在JDK8中不會(huì)將集合文字用作語(yǔ)言功能。
集合文字是一種語(yǔ)法表達(dá)式形式,其求值形式為數(shù)組,列表或映射的聚合類型。 Project Coin提出了集合文字,這也補(bǔ)充了Java SE8中庫(kù)的新增功能。 假定集合文字可以提高生產(chǎn)率,代碼可讀性和代碼安全性。
作為替代方案,Oracle建議基于接口靜態(tài)方法的概念的基于庫(kù)的建議。 理想情況下,該實(shí)現(xiàn)將通過(guò)新的專用不可變類進(jìn)行。
以下是這種基于庫(kù)的方法背后的要點(diǎn)。
- 此功能的基本解決方案僅適用于集合,列表和地圖,因此不太令人滿意或不受歡迎。 涵蓋其他集合類型的可擴(kuò)展集合的高級(jí)解決方案是開(kāi)放式的,混亂的,并且實(shí)際上保證會(huì)超出其設(shè)計(jì)預(yù)算。
- 基于庫(kù)的更改將消除對(duì)Project Coin中討論的“集合文字”更改的大部分要求。
- 基于庫(kù)的方法以成本的1%給出X%的收益,其中X >> 1。
- 值類型即將到來(lái),并且未知具有該值類型的新功能(集合文字)的行為。 最好不要在值類型之前嘗試使用集合文字。
- 最好將Oracle的語(yǔ)言設(shè)計(jì)帶寬集中在解決基于庫(kù)的版本的基礎(chǔ)問(wèn)題上。 這包括更有效的varargs,常量池中的數(shù)組常量,不可變數(shù)組,以及支持緩存(和在壓力下回收)中間不可變結(jié)果。
根據(jù)Oracle的Brian Goetz所說(shuō),真正的痛苦在于Maps而不是Lists,Sets或Arrays。 基于庫(kù)的解決方案更適合列表,集合和數(shù)組。 但是,這種方法仍然缺乏將配對(duì)文字描述為Maps的合理方法。 接口中的靜態(tài)方法使基于庫(kù)的解決方案更加實(shí)用。 值類型也使基于Map的基于庫(kù)的解決方案更加實(shí)用。 還提供基于庫(kù)的解決方案的概念驗(yàn)證補(bǔ)丁。
翻譯自: https://www.javacodegeeks.com/2014/04/oracle-drops-collection-literals-in-jdk-8.html
總結(jié)
以上是生活随笔為你收集整理的JDK 8中的Oracle Drops Collection文字的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 原子由什么组成(有哪几部分组成)
- 下一篇: Elasticsearch-kopf导览