“variable is accessed from within inner class needs to be declared final” error

前端 未结 2 1474
走了就别回头了
走了就别回头了 2021-01-28 12:29

I\'ve got this error while trying to use a local member of one class in inner class inside. I know that declare it as final will solve the issue but I read that Java 8 should ha

相关标签:
2条回答
  • 2021-01-28 12:37

    I think you should change your language level from "Project Structure" -> "Module" -> "your project name" -> "Source" -> "Language Level" and set it to 8

    0 讨论(0)
  • 2021-01-28 12:42

    I know that declare it as final will solve the issue but I read that Java 8 should handle it automatically.

    Java 8 will handle it if the variable is effectively final.

    I can think of two possible explanations:

    1. Maybe the variable is not effectively final. Try explicitly declaring it as final. If you get a compilation error (e.g. saying that something is trying to modify the final) then the variable isn't effectively final.

    2. Maybe you haven't configured Intellij and the project properly for Java 8; e.g.

      • Set the source level; see @saman's answer
      • Check you have the right JDK selected: Java 8 doesn't compile on Intellij15
    0 讨论(0)
提交回复
热议问题