gpt4 book ai didi

java - 如何从匿名内部类访问非最终变量?

转载 作者:行者123 更新时间:2023-12-01 07:45:49 24 4
gpt4 key购买 nike

我有 2 个 Java 类。

  1. 测试记录
  2. 测试2

在两个类中我都编写了相同的逻辑。但是在 TestLogging 类中,我不允许访问匿名内部类中的非最终变量。

但是在 Test2 类中,为什么允许我访问匿名内部类中的非最终变量?

TestLogging

Test2

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

最佳答案

差异是由于您正在编译的 JDK 版本(或目标版本)造成的。

Java 8 理解“有效的最终”变量。如果使用 JDK 8 进行编译,则不必将变量显式声明为 final 即可在匿名类中引用它。

换句话说,变量s虽然没有声明为final,但没有被重新分配,这使得它“实际上是final”(查看this answer以获取更多信息)。

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

关于java - 如何从匿名内部类访问非最终变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52752646/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com