Java 六个月的版本迭代周期让我们突然间有些喘不过气来,又 Java 11 才会是一个长期支持版本,如果可能的话我们将会是从 Java 8 直接往 Java 11 跳去。在 Java 8 大行其道,裹足不前的当下,谈论着未来 Java 11 不确定的新特性,有一种看着别人家碗里的不过瘾,还要看着别人家锅里的感觉。
本篇原本只是为了对 Java 11 潜在的原始字符串字面量(Raw String Literals)的哨探,同时考虑到 Java 10 仅有的一个语言层面的新特性 var
局部变量类型推断,所以顺带介绍一下。
我这儿把它称之为 var 局部变量类型推断,说明了var
类型推断并不适用于类或实例的变量,或方法的参数。而且 var
也并未上升为一个 Java 的关键字,我们仍然可以用 var
作为变量或方法名。
对局部变量用 var
进行类型推断的代码示例变化如下:
List<String> list = new ArrayList<>(); //Java 10 以前
var list = new ArrayList<String>(); //Java 10 开始
int age = 100; //Java 10 以前
var age = 100; //Java 10 开始,推断为 int 类型
var stream = blocks.stream(); //都不需要引入 java.util.Stream 类
var
学了 Scala
的语法,再重复一遍,var
只能用于局部变量,这有一个好处就是局部变量的跨越性较小,不至于 var
声明的变量阅读时只有编译器知道它的确切类型。var
类型推断给代码书写上的变化就是对局部变量的任何类型声明都可以替代为 var
。 阅读全文 >>