Java的匿名内部类不能引用非final类型变量吗?为什么?

提示Cannot refer to the non-final local variable holderItemNews defined in an enclosing scope

如果Java允许匿名内部类访问非final的局部变量的话,那我们就可以在TryUsingAnonymousClass$1中修改paramInteger,但是这不会对number的值有影响,因为它们是不同的reference。

这就会造成数据不同步的问题

名为number的局部变量是作为构造方法的参数传入匿名内部类的。

所以,谜团解开了:Java为了避免数据不同步的问题,做出了匿名内部类只可以访问final的局部变量的限制。

温馨提示:答案为网友推荐,仅供参考
相似回答