【问题标题】:Local Variable Type Inference not being recognized局部变量类型推断未被识别
【发布时间】:2018-09-09 21:14:31
【问题描述】:

我安装了 JDK 10 来试用新功能,但我对var 很感兴趣——出于某种原因,即使将 JDK 添加到 IntelliJ(2018.1 版),以下代码仍然不会编译,说Java找不到符号var

public class Variations {
    public static void main(String[] args) {
        var local = "foo";
        System.out.println(local);
    }
}

我是否在这里遗漏了一些明显的东西,或者 IntelliJ 中是否有我应该启用的选项?

编辑:projectmodule SDK 和语言级别都设置为 Java 10 安装和 lvl。 10(虽然不是X - experimental 级别)。

【问题讨论】:

标签: java intellij-idea var java-10


【解决方案1】:

显然,虽然硬重启 IDE 是不够的,但通过在项目和模块上将语言级别设置为 X - Experimental features 一次,然后将其重新设置为 lvl。 10 个 足以让 IDE 恢复正常。

我想我应该感谢@CrazyCoder 给了我这个想法,即使是间接的。

【讨论】:

    【解决方案2】:

    在 Settings/Build/Compiler/Java Compiler 中,您必须在每个模块中将“目标字节码版本”更改为 10。

    【讨论】:

    • 解释他为什么应该这样做也很有帮助。
    • 是的,这是我做的第一件事。显然,我必须将语言级别超过 10,然后再降低一次,这使 IDE 恢复正常。
    【解决方案3】:

    我在网上搜索了一段时间,发现 IntelliJ 完全支持它。您是否检查过您在 IntelliJ 上运行的 SDK 版本是否为第 10 版? 您可以前往项目结构 (Alt+Shift+Ctrl+S)、SDKS查看。如果您在面板左侧没有看到标签 10.0,则从这里开始,只需使用加号按钮手动添加它。 希望这会有所帮助。

    【讨论】:

    • 毫无疑问,我将它设置为 Project SDK,并且我也将语言级别设置为 10 - 根据所有的说法和推理,它应该支持它,并且此代码应该编译。因此我很困惑。
    【解决方案4】:

    您的代码在 2018 年 3 月 27 日 构建的我的 MacOS IntelliJ 2018.1 上与 Java10 一起运行良好。

    IntelliJ IDEA 2018.1(社区版) 构建 #IC-181.4203.550,构建于 2018 年 3 月 27 日

    您的 IntelliJ 或 JDK 可能有错误。尝试从终端使用jshell。如果可以,应该更新您的 IntelliJ。如果不能,应该检查你安装的JDK。我机器上的版本:

    《10》 2018-03-20 Java(TM) SE 运行时环境 18.3 (build 10+46)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-19
      • 2020-03-30
      • 2017-03-15
      • 1970-01-01
      • 1970-01-01
      • 2017-03-05
      相关资源
      最近更新 更多