java中的var
还在研究java8的流的时候,java已经更新到了13,这让尔等研发如何追赶它的速度呀!尤其是某天搜博客突然看到了var,以为搜索出了错,怎么出现了js片段,原来是自己的孤陋寡闻!
没错,Java中的var关键字来了!
java10中的var关键字
1、本地变量类型推断
在以前的版本中,我们想定义定义局部变量时。我们需要在赋值的左侧提供显式类型,并在赋值的右边提供实现类型,如下面的片段所示:
MyObject value = new MyObject();
List list = new ArrayList();
在Java 10中,你可以这样定义对象:
var value = new MyObject();
var list = new ArrayList();
正如你所看到的,本地变量类型推断将引入“var”关键字,而不需要显式的规范变量的类型。
2、编译器对var的处理
在处理 var时,编译器先是查看表达式右边部分,也就是所谓的构造器,并将它作为变量的类型,然后将该类型写入字节码当中。
attention
只能用于带有构造器的局部变量,以下场景不适用
var foo; foo = "Foo";
var ints = {0, 1, 2};
var appendSpace = a -> a + " ";
private var getFoo(){}
除了局部变量,for循环是唯一可以使用 var的地方:
var numbers = List.of("a", "b", "c");
for (var nr : numbers)
System.out.print(nr + " ");'
for (var i = 0; i < numbers.size(); i++)
System.out.print(numbers.get(i) + " ");