为什么我需要用 Arrays.asList() 替换 List.of()?

Why am I needing to replace List.of() with Arrays.asList()?

我读过

我不明白的是,为什么在我的 Maven pom.xml 中进行了一些依赖升级后,突然间我的所有

List.of(FLIGHT1_SPEND_AGG, FLIGHT1_IMPRESSIONS_AGG)

不再编译。当我在 IntelliJ 中键入 List. 时,自动完成只会出现 class 成员。我想也许我没有导入 java.util.List?如此明确指定它,但仍然:

我正在使用 Java 11,我看到这里有方法:https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/List.html.

为什么我好像不能用?我一定是在做傻事...

您似乎在 ide 中定义了 Java 版本,但没有在 pom 中定义(至少不正确)

您的 pom 需要指定 maven-compiler-plugin 以及源和目标 java 版本。

该定义应类似于以下定义:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.8.1</version>
    <configuration>
        <source>11</source>
        <target>11</target>
    </configuration>
</plugin>

从 maven 更新后,您的 IDE 正在使用您的 pom 中定义的 Java 版本或使用默认版本(对于某些版本的编译器插件,它与 Java 5), 覆盖你之前设置的任何内容。