您的位置:首页 > 编程语言 > Java开发

JDK7中匿名内部类中使用局部变量要加final,JDK8中不需要,但jdk会默认加上final

2016-06-24 23:08 519 查看
今天看书的时候看到了局部内部类,书上说局部内部类可以访问局部变量,但是必须是final的。因为局部变量在方法调用之后就消失了,使用final声明的话该局部变量会存入堆中,和内部类有一样的声明周期。但是我写了一个局部内部类,竟然可以访问非final的局部变量,请问这是什么回事呢。ps:我的jdk是8 难道和这个有关系?

public class jubuneibulei {

public void p(int a, int b){

class te{

void print(){

System.out.println(a);

}

}

new te().print();

}

public static void main(String[] args) {

new jubuneibulei().p(111, 222);

}

}

JDK8中不需要,但jdk会默认加上final
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: