Java ImmutableList.of正在工作,但突然停止工作

Java ImmutableList.of正在工作,但突然停止工作,java,immutability,Java,Immutability,我有以下代码。不知道发生了什么,但它一直工作到1小时前,我没有改变任何事情,现在它不工作了 private final List<People> people; private List<People> friend; method() { friend= ImmutableList.of(people); } 我在尝试编译时收到以下错误消息: incompatible types: inference variable E has incompatible

我有以下代码。不知道发生了什么,但它一直工作到1小时前,我没有改变任何事情,现在它不工作了

private final List<People> people;
private List<People> friend;

method() {
    friend= ImmutableList.of(people);
}
我在尝试编译时收到以下错误消息:

incompatible types: inference variable E has incompatible bounds

[ERROR]     equality constraints: com.app.People
[ERROR]     lower bounds: java.util.List<com.app.People>
有什么想法吗?谢谢

您正在调用的函数返回一个不可变的E列表。在本例中,您的E列表是变量people的类型,因此不可变的List.ofpeople的最终类型是List

看起来您想要创建人员的副本,为此,有另一种方法:

因此,您的代码应该如下所示:

friend = ImmutableList.copyOf(people);
您调用的函数返回一个不可变的E列表。在本例中,您的E列表是变量people的类型,因此不可变的List.ofpeople的最终类型是List

看起来您想要创建人员的副本,为此,有另一种方法:

因此,您的代码应该如下所示:

friend = ImmutableList.copyOf(people);
使用ImmutableList.copyOf代替ImmutableList.of。

使用ImmutableList.copyOf代替ImmutableList.of。

没有ImmutableList.of。。方法获取列表没有不可变的列表。的。。方法获取一个listP.S。如果您的People类是一个代表单个人的类,那么按照惯例,它可能应该被称为person。“人”这个名字用复数表示人的名单是好的。另一方面,朋友列表中的朋友单数并不是我们通常使用的名称。如果您有多个朋友,或朋友的集合,请调用变量friends.P.S。如果您的People类是一个代表单个人的类,那么按照惯例,它可能应该被称为person。“人”这个名字用复数表示人的名单是好的。另一方面,朋友列表中的朋友单数并不是我们通常使用的名称。如果您有多个朋友或朋友的集合,请调用变量friends。