局部变量类型推断未被识别

Local Variable Type Inference not being recognized

我安装了 JDK 10 来尝试新功能,但我对 var 挂了一个大挂 - 出于某种原因,即使 JDK 已添加到 IntelliJ (version 2018.1),下面的代码还是编译不通过,提示Java cannot find the symbol 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 级别)。

在网上查了一会儿,发现IntelliJ完全支持。你有没有检查过你在IntelliJ上运行的SDK版本是不是第10个? 您可以通过 Project Structure (Alt+Shift+Ctrl+S), SDKS 检查它.在这里,如果您没有在面板左侧看到标签 10.0,只需使用加号按钮手动添加它。 希望这有帮助。

显然,虽然 IDE 的硬重启是不够的,通过将项目和模块的语言级别设置为 X - Experimental features 一次,然后 re-setting 将其设置为 lvl . 10 足以让 IDE 重回正轨。

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

你的代码在 Java10 上运行良好,我的 MacOS IntelliJ 2018.1 构建于 2018 年 3 月 27 日

IntelliJ IDEA 2018.1 (Community Edition) Build #IC-181.4203.550, built on March 27, 2018

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

"10" 2018-03-20 Java(TM) SE Runtime Environment 18.3 (build 10+46)

在 Settings/Build/Compiler/Java 编译器中,您必须将每个模块中的 "Target bytecode version" 更改为 10。