翻译:吴嘉俊 ,叩丁狼高级讲师。
在所有Java10中出现的JEP规范中,最有趣,并获得了最多讨论的,非JEP286-局部变量类型推断(Local-Variable Type Inference)。
什么是局部变量类型推断
在Java7中的菱形操作符允许我们这样写代码:
List<String> data=new ArrayList<>();
在Java8中,你可以这样写:
List<String> data=new ArrayList();
右操作数能够根据左操作数推断出类型。Java9中,在匿名内部类中,也同样适用(修复了该问题)。
Java10更进了一步
List<Map> data = new ArrayList();
这个代码在Java10中,可以这样写:
var data = new ArrayList<Map>();
注意,这种写法,我们在右操作数中必须确定泛型的具体参数类型,否则,Java会判定data为一个ArrayList\<Object>。
局部变量类型推断允许开发者在申明局部变量的时候不用显示申明