【发布时间】:2018-03-02 13:46:09
【问题描述】:
我试图扫描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 成员失败是完全合理的,至少在 IMO 中是这样。但是为什么即使是private 也编译不出来呢?我只能假设您仍然可以通过反射获得该变量(并且我无法获得这样的本地字段)......并且获得该变量将需要一个演员,嗯,可能是一个非常混乱的演员。
【问题讨论】:
-
访问修饰符和范围最终被混合并质疑
var类型推断。你提出的另一个好问题。 :)
标签: java type-inference local-variables java-10