为了账号安全,请及时绑定邮箱和手机立即绑定

我如何能够从匿名内部类访问非最终变量?

我如何能够从匿名内部类访问非最终变量?

HUWWW 2021-11-11 14:27:06
我有 2 个 Java 类。测试日志测试2在这两个类中,我都编写了相同的逻辑。但是在 TestLogging 类中,我不允许访问匿名内部类中的非最终变量。但是在 Test2 类中,为什么允许我访问匿名内部类中的非最终变量?如何从匿名内部类访问非最终变量?
查看完整描述

2 回答

?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

不同之处在于您编译所针对的 JDK 版本(或目标版本)。

Java 8 理解“有效最终”变量。在使用 JDK 8 进行编译时,不必显式声明变量 asfinal以便在匿名类中引用它。

换句话说,变量s虽然没有声明为 final,但没有被重新分配,这使得它“有效地最终”(查看这个答案以获取更多信息)。

在 Java 8(和您的其他项目 -TestLogging目标版本为 1.5)之前,必须将变量显式声明为 final


查看完整回答
反对 回复 2021-11-11
?
慕码人2483693

TA贡献1860条经验 获得超9个赞

检查 java 版本的 Maven 配置

//img1.sycdn.imooc.com//618cc7fd00016add19161086.jpg

查看完整回答
反对 回复 2021-11-11
  • 2 回答
  • 0 关注
  • 160 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信