List.of 给出错误:找不到符号错误

Haf*_*ani 4 java compiler-errors list gradle spring-boot

我正在使用带有 gradle 的 springboot 并且我试图在控制器中执行以下代码。

List<String> planets
    = List.of("Mercury", "Venus", "Earth", "Mars",
    "Jupiter", "Saturn", "Uranus", "Neptune");
Run Code Online (Sandbox Code Playgroud)

编译时出现以下错误

错误:找不到符号 = List.of("Mercury", "Venus", "Earth", "Mars", ^ 符号:方法 of(String,String,String,String,String,String,String,String)
位置:接口列表

我的 gradle 文件有

源兼容性 = '1.8'

我知道它是一个 java 9 特性,但不确定为什么它会在编译时失败

Mur*_*nik 5

List.of 不是 Java 9 特性,它是 JDK 9 中添加的一个方法。如果您使用的是 JDK 8,它只是不包含此方法,因此无法针对它进行编译。

简而言之 - 使用更新的 JDK(并在使用时将兼容性级别设置为 9,这样您就不会创建只能与更新的 JDK 一起使用的有效 Java 8 程序的混合)。


Dal*_*aly 5

一个快速修复方法是List.ofArrays.asListJDK 8 中的 which 进行替换。

请注意,这些方法并不完全相同,List.of返回一个不可变列表,而Arrays.asList返回一个可变列表。这里列出了一些其他差异:

List.of 和 A​​rrays.asList 有什么区别?