将java.util.list转换为java.util.lst时发生编译器错误



我现在问这个问题感觉很迟钝,但我不知道发生了什么

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>,编译器将它们视为不同的类型。这就是为什么会出现编译时错误的原因。

只需去掉构造函数的类型参数:

public ListResponse(List<T> items, Paging paging) {
    this.items = items;
    this.paging = paging;
}

最新更新