我试图扫描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
成员(至少 IMO)来说,这是完全合理的。但是为什么即使它是它也不能编译private
?我只能假设您仍然可以通过反射获得该变量(并且我无法获得这样的本地字段)......并且获得该变量将需要一个演员,好吧,可能是一个非常混乱的演员。