我感觉你的不太可能,我特地按照你说的写了个类,在局部位置的内部类访问局部变量,该局部变量必须是声明为final的。你看看你的内部类是不是在局部的,或者是不是局部变量。这是我写的代码:
public class B {
public static void main(String[] args) {
B b = new B();
b.method(5);// 创建对象并调用方法method
}
public void method(final int i) {// 定义局部变量
// 在方法内定义内部类,是局部的
class D {
public String name;
// 定义类的方法,该方法内访问局部变量
public void method2() {
System.out.println(i);// 访问局部变量,必须把i声明为final 否则编译不通过
}
}
new D().method2();// 创建内部类的对象并调用其方法
}
} |