为何内部类调用的外部变量必须是final修饰的?

由于生命周期的缘由。方法中的局部变量,方法结束后这个变量就要释放掉,final保证这个变量始终指向一个对象。首先,内部类和外部类实际上是处于同一个级别,内部类不会由于定义在方法中就会随着方法的执行完毕而跟随者被销毁。问题就来了,若是外部类的方法中的变量不定义final,那么当外部类方法执行完毕的时候,这个局部变量确定也就被GC了,然而内部类的某个方法尚未执行完,这个时候他所引用的外部变量已经找不到
相关文章
相关标签/搜索