当在一个方法里定义一个内部类时,当在调用该方法时,如果方法中的局部变量不是final修饰的话会出错,在此种情况下加final和不加final有什么区别呢,为什么加了就不会出错呢?如下:
public void a(){
private String str="aaaaaaa";
private class Internal{
public void InternalB(){
System.out.println(str)//会出错
}
}
}
public void a(){
private finall String str="aaaaaaa";
private class Internal{
public void InternalB(){
System.out.println(str)//不会出错
}
}
}
请问下,这是为什么呢? |