JDK 8中的Oracle Drops Collection文字

在OpenJDK JEP 186上的一个帖子中,Oracle的Brian Goetz通知Oracle在JDK8中不会将集合文字用作语言功能。

集合文字是一种语法表达式形式,其求值形式为数组,列表或映射的聚合类型。 Project Coin提出了集合文字,这也补充了Java SE8中库的新增功能。 假定集合文字可以提高生产率,代码可读性和代码安全性。

作为替代方案,Oracle建议基于接口静态方法的概念的基于库的建议。 理想情况下,该实现将通过新的专用不可变类进行。

以下是这种基于库的方法背后的要点。

  • 此功能的基本解决方案仅适用于集合,列表和地图,因此不太令人满意或不受欢迎。 涵盖其他集合类型的可扩展集合的高级解决方案是开放式的,混乱的,并且实际上保证会超出其设计预算。
  • 基于库的更改将消除对Project Coin中讨论的“集合文字”更改的大部分要求。
  • 基于库的方法以成本的1%给出X%的收益,其中X >> 1。
  • 值类型即将到来,并且未知具有该值类型的新功能(集合文字)的行为。 最好不要在值类型之前尝试使用集合文字。
  • 最好将Oracle的语言设计带宽集中在解决基于库的版本的基础问题上。 这包括更有效的varargs,常量池中的数组常量,不可变数组,以及支持缓存(和在压力下回收)中间不可变结果。

根据Oracle的Brian Goetz所说,真正的痛苦在于Maps而不是Lists,Sets或Arrays。 基于库的解决方案更适合列表,集合和数组。 但是,这种方法仍然缺乏将配对文字描述为Maps的合理方法。 接口中的静态方法使基于库的解决方案更加实用。 值类型也使基于Map的基于库的解决方案更加实用。 还提供基于库的解决方案的概念验证补丁。

翻译自: https://www.javacodegeeks.com/2014/04/oracle-drops-collection-literals-in-jdk-8.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值