我有一个学生正在准备 Java 7 OCP 考试,他向我提出了这个问题。他和我都明白局部变量不能在方法的内部类中使用,除非它是最终的,但他向我提供了以下运行良好的代码:
public class TestC195 {
public static void main(String[] args) {
TestC195 myObject = new TestC195();
myObject.doStuff();
}
private String x = "Outer 2";
void doStuff() {
String z = "local";
class myInner {
public void seeOuter() {
System.out.println("outer: " + x);
System.out.println("outer: " + z);
}
}
myInner in = new myInner();
in.seeOuter();
}
}
输出为:
outer: Outer 2
outer: local
那么我们都错过了什么?
最佳答案
如果您使用 java 8 进行编译,那是因为它实际上是最终的 link here
关于java - 局部变量不能在内部类中使用。那么为什么这段代码可以工作呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41555312/