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
}
}
如何通过类型参数传递空列表?
编译器给我错误信息:
服务类型中的方法setData(List <User>)不适用于参数(List <Object>)
如果我尝试使用List进行投射,则出现错误:
无法从List <对象>投射到List <用户>
result.setData(new ArrayList<User>());
工作正常,但我不想通过。
Collections.emptyList()
是通用的,但您使用的是原始版本。
您可以使用以下命令显式设置类型参数:
result.setData(Collections.<User>emptyList());
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句