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

时间:2015-03-17 15:39:33

标签: java generics

我现在感觉这么高,现在问这个问题,但我无法弄明白它是怎么回事

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>

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

1 个答案:

答案 0 :(得分:4)

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

摆脱构造函数的类型参数:

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