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关键字为啥也执行出来了,求指教 展开
{
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关键字为啥也执行出来了,求指教 展开
展开全部
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
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询