java局部内部类 变量前加final关键字

classOuter{voidm1(){//局部变量intage=10;//这个为啥不加final关键字也行classInner{voidm2(){System.out.... class Outer
{

void m1(){
//局部变量
int age=10;//这个为啥不加final关键字也行

class Inner
{

void m2(){
System.out.println(age);
}
}
Inner i=new Inner();
i.m2();

}
public static void main(String [] args){
Outer o=new Outer();

o.m1();//10
}
}
我的那个局部变量age没有加final关键字为啥也执行出来了,求指教
展开
 我来答
雪飞潇潇
2017-06-27 · TA获得超过6275个赞
知道大有可为答主
回答量:1968
采纳率:91%
帮助的人:876万
展开全部

java8 的新特性,这种情况的final可以省略不写。

虽然可以省略final,但是其实还是具有final的语义 ,不要试图修改,否则报错。

实际写代码时,加上final是较好的习惯。

参考代码

class Outer {

void m1() {
// 局部变量
int age = 10;// 这个为啥不加final关键字也行

class Inner {

void m2() {
System.out.println(age++);//修改age,就会报错提示你必须是final的
}
}
Inner i = new Inner();
i.m2();

}

public static void main(String[] args) {
Outer o = new Outer();

o.m1();// 10
}
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式