gpt4 book ai didi

Java 13 - 无法使用 `var` 关键字

转载 作者:行者123 更新时间:2023-12-02 08:58:05 26 4
gpt4 key购买 nike

出于某种原因,尽管我的语言级别为 13,但我无法使用关键字 var

Settings -> Build, Execution, Deployment -> Compiler -> Java Compiler

设置为 13。

我正在使用 gradle,并将 JVM 语言目标设置为 1.8

我检查并尝试过:

problem in compile time when using "var" in jdk 11

How to avoid IntelliJ to reset language level?

最佳答案

你没有说你正在使用什么IDE,但我猜是IntelliJ。您也没有在 IntelliJ 中显示 Gradle 配置,因此我假设您将使用默认设置并且它是一个相对较新的版本。

您可以选择让 IntelliJ 编译您的源代码,或者让 Gradle 来编译您的源代码。默认为 Gradle,因此您如何配置 IntelliJ 编译器并不重要,因为它不会被使用。

如果你不 fork Gradle 编译,它将使用与运行 Gradle 相同的 JDK 进行编译。在 IntelliJ 中,这是在 Build Tools -> Gradle 下的 Gradle JVM 设置中配置的(如果从 CLI 运行它,则为 JAVA_HOME) .

现在回到你的问题。您不能使用 var 关键字的原因正是因为您已将其配置为针对 Java 8。这意味着源代码也必须与 Java 8 兼容。如果您考虑一下,较新的语言功能通常需要更新版本的字节代码。因此,如果您需要最终的二进制文件与 Java 8 兼容,那么您也需要源代码与 Java 8 兼容。

您仍然可以使用 Java 13 编译为 Java 8 字节代码(只要您针对 Java 8 API 和语法进行编程)。但是,您应该使用 --release 标志,而不是仅使用“目标”版本,因为这也会正确配置 bootclasspath,我猜您没有这样做(这可确保您使用正确的 API)。例如:

compileJava {
options.compilerArgs.addAll(['--release', '8'])
}

关于Java 13 - 无法使用 `var` 关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60367363/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com