本帖最后由 ysdolls 于 2014-8-19 19:03 编辑
当方法被调用运行完毕之后,局部变量就已消亡了。但内部类对象可能还存在,
直到没有被引用时才会消亡。此时就会出现一种情况,就是内部类要访问一个不存在的局部变量。
所以当方法中的内部类要访问方法中的局部变量时,必须是被final修饰的
这里,谁能帮忙举个栗子,就是方法结束后,内部类要访问局部变量的例子?
- public class Demo {
- public static void main(String[] args) {
-
- A a = new A();
- a.method(1);
- a.method(2);
- }
- }
- class A{
- int x =0;
- void method(final int b){
- class B{
- void fun(){
- System.out.println(b);
- }
- }
- new B().fun();
- }
- }
复制代码 被final修饰后 不是一样生命周期随着方法的结束而结束吗?不然不能重新赋值的。
|
|