Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么我需要用array.asList()替换List.of()?_Java_Arrays_Dependencies_Package_Java 11 - Fatal编程技术网

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

Java 为什么我需要用array.asList()替换List.of()?,java,arrays,dependencies,package,java-11,Java,Arrays,Dependencies,Package,Java 11,我读过 我不明白的是,为什么在我的Maven pom.xml中进行了一些依赖项升级之后,我的 List.of(FLIGHT1_SPEND_AGG, FLIGHT1_IMPRESSIONS_AGG) 不再编译。当我在IntelliJ中键入List.时,autocomplete只会显示类成员。我想可能我没有导入java.util.List?因此明确指定了它,但仍然: 我使用的是Java 11,我看到这里存在这个方法: 为什么我不能用它呢?我一定是做了什么蠢事…看起来您在ide中定义了Java版本

我读过

我不明白的是,为什么在我的Maven pom.xml中进行了一些依赖项升级之后,我的

List.of(FLIGHT1_SPEND_AGG, FLIGHT1_IMPRESSIONS_AGG)
不再编译。当我在IntelliJ中键入
List.
时,autocomplete只会显示
成员。我想可能我没有导入
java.util.List
?因此明确指定了它,但仍然:

我使用的是Java 11,我看到这里存在这个方法:


为什么我不能用它呢?我一定是做了什么蠢事…

看起来您在ide中定义了Java版本,但在pom中没有定义(至少没有正确)

pom需要指定maven编译器插件以及源和目标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>

org.apache.maven.plugins
maven编译器插件
3.8.1
11
11

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

噢,是因为
long
是可变的吗?但是。。。它以前是如何编译的?(依赖关系中的什么变化可能改变了这一点?)。也许尝试重新启动IDE或清除IDE缓存?@StoppharmingMonica-就是这样。如果你想加上你的答案,我可以接受你的。