Advertisement

Java进阶——Java 局部内部类访问局部变量必须加final

阅读量:

Java 局部内部类访问局部变量为什么必须加final关键字

疑问

在Java中,在嵌套类中引用方法中的变量时,请确保该变量声明为final类型;否则,在编译过程中会遇到错误。

此部分涉及的内层类型归为具体实现中的内层类型(即方法内层或匿名内层),不包括非静态、非成员的内层类型

这里通过一个例子类分析

复制代码
    public class InnerClass {
      
    	private int defaultAge = 5;
      局部变量 age,必须添加final关键字,这里先不加
    	public void addAge( int age){
      
    //局部内部类
    		class NewAge{
    			private int getAge(){
    				return age + defaultAge;
    			}
    		}
    
    		NewAge newAge = new NewAge();
    		System.out.print(newAge.getAge());
    	}
    }

强行不加final,编译,则会报错:

Error:(16, 12) 错误: 从内部类中访问本地变量age; 需要被声明为最终类型

全部评论 (0)

还没有任何评论哟~