“从内部类内部访问变量需要声明为最终的”错误

Ron*_*esh 0 java oop final intellij-idea inner-classes

尝试在内部类内部使用一个类的本地成员时遇到此错误。我知道将其声明为final将解决此问题,但我读到Java 8应该自动处理它,因为我将Intellij与Java 8一起使用,但它仍然无法编译。还有其他方法可以在不将其声明为final的情况下进行修复吗?谢谢。

Ste*_*n C 5

我知道将其声明为final将解决此问题,但我读到Java 8应该自动处理它。

如果变量有效地为final,则Java 8将对其进行处理。

我可以想到两种可能的解释:

  1. 也许变量不是有效的最终值。尝试显式声明为final。如果您收到编译错误(例如,说正在尝试修改final),则该变量实际上不是最终变量。

  2. 也许您尚未针对Java 8正确配置Intellij和项目;例如