我注意到在我系统的代码中有人实例化了一个匿名类,如下所示
Class ExampleClass{
MyObj obj;
methodA(new ClassA(){
@override public void innerMethodA(){
//code...
}
});
}
到现在为止还挺好。
现在,为了使用在方法之前声明的 obj,我通常将其定义为 final。
我真的不明白为什么,但我这样做是因为编译器要求。在这段代码中,我在 innerMethodA() 中看到了
ExampleClass.this.obj()
没有决赛。
我的问题:
1. 为什么我在使用 obj 时必须输入 final?
2.什么是ExampleClass.this?请注意,ExampleClass 是 Class 而不是实例。那么“这个”是什么?如果它有几个实例?
3. 如果我在内部方法运行时更改 obj 会发生什么(在我的代码中,内部方法在循环中运行,所以我打算更改它。它会爆炸吗?)