我现在很想问这个问题,但是我无法弄清楚到底是怎么回事
import java.util.List;
public class ListResponse<T> {
private List<T> items;
private Paging paging;
public <T> ListResponse(List<T> items, Paging paging) {
this.items = **items**;
this.paging = paging;
}
}
我在标记的items参数上遇到编译器错误。错误是:
Type mismatch: cannot convert from java.util.List<T> to java.util.List<T>
你知道发生了什么吗?谢谢!
最佳答案
定义为构造函数范围的<T>
隐藏了类范围的<T>
,编译器将它们视为不同的类型。这就是为什么会出现编译时错误的原因。
只要摆脱构造函数的type参数:
public ListResponse(List<T> items, Paging paging) {
this.items = items;
this.paging = paging;
}