其实说到变量类型推导,咱们很容易连联想到一些脚本语言,在(http://openjdk.java.net/jeps/286)中,java提出这个新特性。java
Enhance the Java Language to extend type inference to declarations of local variables with initializers.linux
记得在入门 Java 的时候,以为就像 C++ 的增强版,在 Java 最开始的版本中,一直都是强类型语言,须要在声明变量的时候规定是什么类型。而后有些人以为 Java 是一种冗长的语言,须要一种精确、简洁的方式来编写Java代码。其实我以为这样不是也挺好的哈。Java 7 在某种程度上解决了这个问题。Java 10添加了带有初始化器的局部变量类型推断,以消除冗长。shell
而后咱们能够先安装一下,openjdk10,能够在这个网址下载(http://jdk.java.net/10/)函数
wget https://download.java.net/java/GA/jdk10/10.0.1/fb4372174a714e6b8c52526dc134031e/10/openjdk-10.0.1_linux-x64_bin.tar.gz .net
而后解压 tar xvf openjdk-10*_bin.tar.gz 配置一下就行了,参考(https://blog.csdn.net/felix_ghc/article/details/52291381)blog
vi /etc/profileget
加入如下内容,而后 source /etc/profileit
而后看看当前的 Java 版本io
而后使用 Jshell 来用用,果真是能够这么写的,使用 var 来定义变量名入门
可是这种类型推导,并不适合如下这种类型推导
而后咱们还能够试试这种for each,固然 for (var i=0;i<arr.length;i++) 这种也是能够的。
在某些状况下,此功能不能有效使用:
构造函数的参数
方法的参数
null 也是不行的
return 类型也是不行的
还有类的属性字段
参考:
https://dzone.com/articles/java-10-local-variable-type-inference