将 java.util.list 转换为 java.util.list 的编译器错误?

compiler error converting java.util.list to java.util.list?

我现在感觉很菜鸟问这个问题,但我不知道这是怎么回事

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;
    }

}

我在标记的项目参数上遇到编译器错误。错误是:

Type mismatch: cannot convert from java.util.List<T> to java.util.List<T>

你知道发生了什么事吗?谢谢!

定义为构造函数范围的<T>隐藏了class范围的<T>,编译器将它们视为不同的类型。这就是你得到编译时错误的原因。

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

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