不懂啊~ 我又发现个新问题 匿名内部类访问方法中的变量必须用final修饰,为什么呢?能总结一下规律么? 比如class A {} class B{ void test() { int num = 10 A class1 = new A() { System.out.println(num); 编译不过,但如果放在class A或class B中定义num就不需要final修饰了 }; }
LZ觉得下面的代码是否能编译通过:public class A { System.out.println(123); }同样的道理。
http://blog.csdn.net/kiritor/article/details/8752953
我又发现个新问题
匿名内部类访问方法中的变量必须用final修饰,为什么呢?能总结一下规律么?
比如class A {}
class B{
void test()
{
int num = 10
A class1 = new A()
{
System.out.println(num); 编译不过,但如果放在class A或class B中定义num就不需要final修饰了
};
}
LZ觉得下面的代码是否能编译通过:public class A
{
System.out.println(123);
}同样的道理。
final的东西,估计是为了减少复杂性。