A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© doomsday   /  2015-4-8 15:58  /  1884 人查看  /  27 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

JarryHorse 发表于 2015-4-8 23:26
哥们儿你这就太不厚道了,如果您理解得还不是很深入就得好好琢磨琢磨了,如果你理解了还说出这话我就当你 ...

楼主已经说了很清楚了,jdk1.8
这是1.8的新特性,别说我调戏大家。

回复 使用道具 举报
一定会报错,你这是定义局部内部类,局部内部类只能访问final 修饰的局部变量
回复 使用道具 举报
JarryHorse 发表于 2015-4-8 22:28
我JDK8,这跟JDK版本无关,这是Java底层机制决定的,方法在栈中运行,内部类对象存放在堆中,存在方法运 ...

就是和版本有关,1.8的新特性。
局部内部类可以访问局部变量。
一当访问之后,局部变量就相当于被final修饰。
回复 使用道具 举报
doomsday 发表于 2015-4-9 00:28
你确定你的eclipse支持jdk8吗?你试试在dos窗口下编译呢

java 8新特性。
某段java8新特新的描述。
在Java8以前,如果要在内部类访问外部对象的一个本地变量,那么这个变量必须声明为final才行。在Java8中,这种限制被去掉了,代之以一个新的概念,“effectively final”。它的意思是你可以声明为final,也可以不声明final但是按照final来用,也就是一次赋值永不改变。换句话说,保证它加上final前缀后不会出编译错误。
回复 使用道具 举报 1 0
还是会报错的吧
回复 使用道具 举报
君嘘 发表于 2015-4-9 01:05
java 8新特性。
某段java8新特新的描述。
在Java8以前,如果要在内部类访问外部对象的一个本地变量,那么 ...

就是这样的,但我就不明白为啥jdk1.8会这样弄
回复 使用道具 举报
会的,内部类访问局部变量一定要用final,还是养成良好的习惯呢
回复 使用道具 举报
学习一下、
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 加入黑马