摘要: 嵌套类(内部类)方法安全引用外部方法局部变量的原理嵌套类方法引用外部局部变量,必需将声明为final,否则将出现Cannot refer to a non-final variable * inside an inner class defined in a different method 编译错误,错误的直接原因是嵌套类对象生命周期与外部方法局部变量生命周期不一致,当外部方法执行完毕,局部变量自动回收,而方法执行产生的新对象不一定会被GC回收(当该对象已被外部对象变量引用时),该对象存续期间,因调用自身方法而引用到已被回收的局部变量,会导致空指针BUG。给个简单示例: 1 publ... 阅读全文
posted @ 2013-11-27 11:46 wavky 阅读(668) 评论(0) 推荐(0) 编辑