我尝试阅读关于本地类型推断的JEP-286。我发现这仅适用于本地变量 - 我明白了。所以这确实有效:
public class TestClass {
public static void main(String [] args){
var list = new ArrayList<>();
list.add("1");
System.out.println(list.get(0)); // 1
}
}
我发现这段代码无法编译:
public class TestClass {
public var list = new ArrayList<>();
public static void main(String [] args){
}
}
很明显,由于JEP的规定,它不支持这样做。现在我的问题是:如果一个声明为var的public/protected成员失败,至少在我看来是有道理的。但是即使它是private,为什么它也不能编译呢?我只能假设你仍然可以通过反射获取该变量(而我无法获取像这样的局部字段)...并且获取该变量需要进行转换,嗯,可能是非常困惑的转换。
var
类型推断。又是一个来自您的好问题。 :) - Naman