一個方法內部有兩個線程共享內部類對象的時候,這個方法的局部變量若是能被訪問,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