【问题标题】:Local class can access non-final variable in java 8本地类可以访问 java 8 中的非最终变量
【发布时间】:2014-05-10 12:03:26
【问题描述】:

在 Java 8 之前,我们无法在本地类中使用非最终变量。但是现在他们允许最终以及有效的最终(谁的值没有改变),可以由本地类引用。我所知道的(如果我错了,请纠正我),他们不支持引用非最终值,因为可以更改值。那么,他们现在如何支持它以及为什么之前不支持它。

【问题讨论】:

    标签: java java-8 local-class


    【解决方案1】:

    实际上,情况根本没有改变。编译器稍微聪明一点,不再强迫你使用 final 关键字。

    如果它检测到变量有效是final的,即只分配一次,以后再也不分配,一切都很好。如果它检测到它不是有效的 final,它会拒绝编译。

    因此,它不会强制您将变量设为 final,而是自动检测它。但是您仍然不能在内部类或 lambda 中使用非有效最终变量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-08
      • 2015-04-09
      • 2021-03-02
      相关资源
      最近更新 更多