为什么匿名内部类和局部内部类只能访问final变量
2017-08-20 00:00
239 查看
最主要的原因是局部变量的生命周期与局部内部类或者匿名内部类的对象的生命周期可能是不一样的,局部变量随方法的出栈而销毁,而局部内部类或者匿名内部类的生命周期可能更长。举个例子:
输出结果:
package com.letter.test; /** * @package: com.letter.test * @describe: * @author: WX * @date: 2017年8月20日 下午2:44:37 */ public class InnerClass { //此处使用Runnable仅用于举列子。 private static Runnable runnable; private static void method(){ final String say = "Hello Final!"; runnable = new Runnable() { public void run() { //此处say不声明为final类型也可以,但是编译器会自动把say转换为final变量, //是由于JDK8的原因哈。 System.out.println(say); } }; } public static void main(String[] args){ method(); runnable.run(); } }
输出结果:
相关文章推荐
- 为什么匿名内部类和局部内部类只能访问final变量
- 为什么匿名内部类和局部内部类只能访问final变量
- 为什么匿名内部类和局部内部类只能访问final变量
- 为什么匿名内部类和局部内部类只能访问final变量
- 为什么匿名内部类和局部内部类只能访问final变量
- 为什么匿名内部类和局部内部类只能访问final变量
- 为什么匿名内部类和局部内部类只能访问final变量
- 为什么匿名内部类和局部内部类只能访问final变量
- 内部类——为什么匿名内部类和局部内部类只能访问final变量
- 为什么匿名内部类和局部内部类只能访问final变量
- 转:为什么匿名内部类和局部内部类只能访问final变量
- 为什么匿名内部类和局部内部类只能访问final变量
- 4000 Java-内部类(二)为什么匿名内部类和局部内部类只能访问final变量
- 为什么匿名内部类和局部内部类只能访问final变量
- 为什么匿名内部类和局部内部类只能访问final变量
- [转]为什么匿名内部类和局部内部类只能访问final变量
- 为什么匿名内部类和局部内部类只能访问final变量
- 为什么匿名内部类和局部内部类只能访问final变量
- 为什么匿名内部类和局部内部类只能访问final变量
- 为什么匿名内部类和局部内部类只能访问final变量