Java 闭包提案比较 JCA 意见书发布

  • Rob Thornton
  • 肖桦

2007 年 4 月 15 日

话题:Java语言 & 开发架构

Java 闭包的 C3S 提案作者 Howard Lovatt,为四份著名的提案(C3SFCMCICEBGGA)编写了一份详细的比较。同时,FCM 的作者们发布了一份新的建立于 FCM 基础上的关于 Java 控制抽象的意见书。Ricky Clarkson 认为CICE 是不足的,而且怀疑 Google 的内部策略正影响着它。

Lovatt 遍历了四份提案,并以十一个特性比较了它们:

  1. 创建一个内部类 / 闭包实体时的短语法
  2. 访问内部类的this指针与方法
  3. 多于一个方法存在于内部类 / 闭包实体
  4. 定义于类的方法的实现
  5. 类型推断
  6. 方法、构造函数、属性的字面表达
  7. 短语法(特别用于控制结构语句与短方法)
  8. 局部变量的赋值,无需final声明
  9. 数量可变的异常
  10. 方法 / 函数的类型(使用更短的语法)
  11. 非局部跳转、returnbreakcontinue

他文章的目的是从提案中分开内部类 / 闭包的部分与其他额外的部分。在这篇比较的最后,Stephen Colebourne、Stefan Schulz 和 Ricky Clarkson 建立了一份基于 FCM 的关于Java 控制抽象的意见书(他们澄清说那不是一份意见书而且还没最终完成)。需要 JCA 参与的原因是有一些地方还不适合。比如存在一个 API,在使用上与内置的关键字非常相像。

最后,Ricky Clarkson 怀疑Google 的内部策略正影响着 CICE 提案的进一步发展。JCP 对向它提交议案的组织有着限制,特别是当公司的雇员是 JCP 的成员时,Clarkson 建议 Josh Bloch,Google 在 JCP 的联系人,既然他提交了 CICE 的提案,就应该在创建 JSR 时回避。CICE 的另一位作者 Bob Lee 回应 Clarkson 说这是个不公平的建议,而且现在不用急急忙忙的闭包加入到 Java 中。

译者简介:肖桦是 InfoQ 中文站的志愿者翻译。他的网名为“江南白衣”,Java 领域专家,开源 JavaEE 项目SpringSide发起人,现任广州电信研究院亿迅科技有限公司任设计中心设计主管。加入 InfoQ 中文站志愿者翻译队伍,请邮件至china-editorial@infoq.com

Java语言 & 开发架构