美文网首页
在jdk1.8以前匿名内部类使用外部类变量必须是final的原因

在jdk1.8以前匿名内部类使用外部类变量必须是final的原因

作者: 国祥同学 | 来源:发表于2017-03-27 21:25 被阅读0次

内部类里面使用外部类的局部变量时,其实就是内部类的对象在使用它,内部类对象生命周期中都可能调用它。
而内部类试图访问外部方法中的局部变量时,外部方法的局部变量很可能已经不存在了,那么就得延续其生命,拷贝到内部类中,而拷贝会带来不一致性,从而需要使用final声明保证一致性。

复制保证生命周期延续,final保证引用一致。

相关文章

网友评论

      本文标题:在jdk1.8以前匿名内部类使用外部类变量必须是final的原因

      本文链接:https://www.haomeiwen.com/subject/racdottx.html