请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于内部类使用外部类成员变量final修饰的问题

老师你好,在代码里面,帮助类Helper使用了外部类的变量,而外部类没有申明为final修饰,请问是因为1.8的版本,JVM自动补加上的还是不需要加final

正在回答 回答被采纳积分+3

1回答

悟空 2019-09-20 14:25:20

并不是所有内部类调用外部类的所有变量都必须加final的。方法里的内部类访问该方法里的局部变量要final修饰。

在JDK1.8中,也提供了lambda表达式,使得我们可以对匿名内部类进行简化,并且从JDK1.8开始,编译器不要求自由变量一定要声明为final,如果这个变量在后面的使用中没有发生变化,就可以通过编译,Java称这种情况为“effectively final”。

代码里的外部类变量是static的,你可以自己在IDE里试一下。

0 回复 有任何疑惑可以回复我~
  • 提问者 慕勒9548534 #1
    好的,谢谢老师
    回复 有任何疑惑可以回复我~ 2019-09-20 14:28:04
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信