JEP 286 局部变量类型推断调查结果

  • Alex Blewitt
  • 任美芒

2016 年 3 月 23 日

话题:Java语言 & 开发

Brian Goetz 公布了局部变量类型推断调查结果,结果显示公众对采纳这一特性反响热烈。InfoQ 对结果进行报道。这项调查包含了问卷问题的所有结果数据、其他的评论以及在身份验证时输入的信息。

回答者对 Java 语言采用该特性似乎非常喜爱,超过 86% 的人说他们支持 Java 语言增加局部类型推断,这样将能够看到 JVM 推断局部变量类型的能力,类似于 C/C++ 中关键字 auto 或 Swift 和 Scala 语言关键字 var:

public void aMethod() {
  var count = 0; // 推断为 int 类型 
  var name = "Alex"; // 推断为 String 类型 
}

大约 84% 的回答表明定义可变内容的变量用关键字 var 是恰当的,只有百分之几的回答者建议用 auto 更合适。

对于是否应该引入一个单独的关键字来表明推断值的类型是不可变的,调查结果是多元的。其他语言对选择结果有一定的影响,例如 let(来自新兴语言如 Swift 和 Rust)和 var(来自 Scala),或者仅用现有的 final 修饰符来表示不可变的值。结果不存在绝大多数,意见分布在三种选择之间,Scala 的影响力推动了使用 var 的支持者领先于其他两个。80% 的回答支持只引入 var,至少在初期,引入其他的选择会导致更大程度的反感。似乎看起来单独使用 var 会带来最大的好处和最小的反感,而选择留在未来再开放。

后续调查已经建立,每个人可以根据早期的结果提供其他的反馈。

查看英文原文:JEP 286 Survey Results for Local Variable Type Inference


感谢张龙对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们。

Java语言 & 开发