一个方法内部有两个线程共享内部类对象的时候,这个方法的局部变量若是能被访问,java
则就成为临界资源,致使程序不稳定,因此必须是final的。ide
反正总而言之,java就是不容许你在局部内部类里面更改所在方法的局部变量就是了 线程
public class MyBase { 对象
public AnoClass func(final int i){
return new AnoClass(){
int j=i;
{
System.out.println("Anonymous Inner class");
}
public void func(){
System.out.println("Inner AnoClass");
}
};
}
/**
* @param args
*/
public static void main(String[] args) {
MyBase mybase = new MyBase();
AnoClass anoClass = mybase.func(5);
anoClass.func();
} 资源
} it
class AnoClass{
public void func(){
System.out.println("AnoClass.");
}
} class