gpt4 book ai didi

java - 如何传递带有类型参数的空列表?

转载 作者:搜寻专家 更新时间:2023-10-31 08:10:50 24 4
gpt4 key购买 nike

class User{
private int id;
private String name;

public User(int id, String name) {
this.id = id;
this.name = name;
}
}

class Service<T> {
private List<T> data;
public void setData(List<T> data) {
this.data = data;
}
}

public class ServiceTest {
public static void main(String[] args) {
Service<User> result=new Service<User>();
result.setData(Collections.emptyList()); // problem is here
}
}

如何传递带有类型参数的空列表?

编译器给我错误信息:

The method setData(List< User > ) in the type Service is not applicable for the arguments (List< Object > )

如果我尝试使用 List 进行转换,则会出现错误:

Cannot cast from List< Object > to List< User >

result.setData(new ArrayList<User>());工作正常,但我不想通过它。

最佳答案

Collections.emptyList()是通用的,但您使用的是原始版本。

您可以显式设置类型参数:

result.setData(Collections.<User>emptyList());

关于java - 如何传递带有类型参数的空列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33630062/

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