JDK将新增局部变量类型推断功能

简介: OpenJDK 提出一个新的计划, 准备为 Java 增加局部变量类型推断功能(local-variable type inference capability), 这让代码编写更简单, 同时也保证原有的静态类型安全特性。

OpenJDK 提出一个新的计划, 准备为 Java 增加局部变量类型推断功能(local-variable type inference capability), 这让代码编写更简单, 同时也保证原有的静态类型安全特性。

该计划于3月8号提出,文档地址为: JEP-286(JDK Enhancement Proposal,JDK增强方案)。 目前没有指定具体在哪个JDK版本中实现。

提案中说:

“We seek to improve the developer experience by reducing the ceremony associated with writing Java code while maintaining Java’s commitment to static type safety by allowing developers to elide the often-unnecessary manifest declaration of local variable types, (我们致力于改善编码体验, 减少非必要的代码量,同时保持Java静态类型安全的承诺,允许开发者省略不必要的类型声明).”

其他静态类型语言, 如 C++, Scala, 和 Go,都已经实现了局部变量类型推断。
JEP 中强调:

“Java is nearly the only popular statically typed language that has not embraced local-variable type inference,( Java应该是最流行的几种静态类型语言中, 唯一不支持局部变量类型推断的). ”
“At this point, this should no longer be a controversial feature.(在这一点上,应该不会有太多争议).”

Java开发人员经常会发现标准样板代码体积臃肿。

“Manifest type declarations for locals are often perceived to be unnecessary or even in the way; given good variable naming, it is often perfectly clear what’s going on, (本地变量的类型清单通常来说是非必须的,指定一个有意义的变量名比什么都好).”

JEP中写到。

“The need to provide a manifest type for every variable also accidentally encourages developers toward overly complex expressions; with a lower-ceremony declaration syntax, there is less disincentive to break complex chained or nested expressions into simpler ones.(为每个变量指定类型也可能会导致写出很复杂的语句, 简化语法声明, 可以有效减少复杂的链式调用, 将嵌套表达式分解为简单语句。)”

该计划限制了类型推断的使用场景: 有初始值的局部变量, 增强型for循环中的index, 普通for循环里的局部变量

“Quantitatively, we want that a substantial percentage of local variable declarations in real code bases can be converted using this feature, inferring an appropriate type.(在数量上, 我们希望可以根据这个特性,将绝大部分的局部变量, 推导出一个适当的类型声明。)”

OpenJDK作为Java SE 的开源实现, 由Oracle提供支持。JavaSE 9 是Oracle官方的下一代版本,即将在一年以内发布。JEP-286由Oracle的 Java平台组(Java platform group)首席架构师 Mark Reinhold 背书。

欢迎加入: CNC开源组件交流群 316630025

原文链接: http://www.javaworld.com/article/3044554/java-language/openjdk-plan-would-make-java-coding-easier.html

原文日期: 2016年03月15日

翻译日期: 2016年03月17日

翻译人员: 铁锚 http://blog.csdn.net/renfufei

目录
相关文章
|
6月前
|
安全 JavaScript 前端开发
JDK1.8的重要的新特性与功能
Java Development Kit (JDK) 1.8,也称为Java 8,是Java平台的一个重大更新,于2014年3月发布。它引入了多项新特性、新的API和性能提升
728 3
|
11月前
|
移动开发 Java 开发工具
3.JAVA为什么能这么火?---了解Java语言的发展,功能,跨平台的原理以及什么是JDK,JRE
3.JAVA为什么能这么火?---了解Java语言的发展,功能,跨平台的原理以及什么是JDK,JRE
83 1
|
1月前
|
Java Go Scala
jdk10的var局部变量类型推理
本文介绍了JDK 10中引入的局部变量类型推断功能,即`var`关键字,它允许开发者在声明具有初始值的局部变量时省略显式类型,以简化代码并提高可读性。
13 1
jdk10的var局部变量类型推理
|
24天前
|
Java
让星星⭐月亮告诉你,jdk1.8 Java函数式编程示例:Lambda函数/方法引用/4种内建函数式接口(功能性-/消费型/供给型/断言型)
本示例展示了Java中函数式接口的使用,包括自定义和内置的函数式接口。通过方法引用,实现对字符串操作如转换大写、数值转换等,并演示了Function、Consumer、Supplier及Predicate四种主要内置函数式接口的应用。
20 1
|
3月前
|
Java 编译器 API
JDK8到JDK18版本升级的新特性问题之在JDK10中,实现局部变量类型推断,如何操作
JDK8到JDK18版本升级的新特性问题之在JDK10中,实现局部变量类型推断,如何操作
|
4月前
|
Java API 运维
开发与运维特性问题之jmap命令功能如何解决
开发与运维特性问题之jmap命令功能如何解决
42 0
|
存储 监控 Java
JDK10优化了哪些功能以及新增了哪些特性功能|JDK各个版本的特性分析
JDK10优化了哪些功能以及新增了哪些特性功能|JDK各个版本的特性分析
|
编解码 移动开发 Java
JDK9优化了哪些功能以及新增了哪些特性功能|JDK各个版本的特性分析
JDK9优化了哪些功能以及新增了哪些特性功能|JDK各个版本的特性分析
|
6月前
|
Java 编译器 开发者
JDK 10中的局部变量类型推断:探索var关键字的新境界
在JDK 10中,Java语言引入了一个令人兴奋的新特性:局部变量类型推断。通过使用关键字"var",开发者可以在声明局部变量时省略类型注解。这一改进旨在简化代码,提高可读性,并使Java更接近于动态类型脚本语言。本文将深入探讨局部变量类型推断的工作原理、优点、限制以及在实际项目中的应用。
|
IDE 安全 Java
好家伙!JDK16 GA 终于发布,内置 Lombok 的功能,真的顶?
Java提供了一些Vector API, 那到底什么是Vector API呢?废话不多说,给你举个例子。我们先写一段普通的Java代码:
好家伙!JDK16 GA 终于发布,内置 Lombok 的功能,真的顶?