不兼容的类型:需要T找到T Android Studio

时间:2015-01-21 10:33:18

标签: java generics

我正在使用扩展类的泛型:

public <T extends Model> List<T> findAll() {
    ...
}

lint checker aways显示这些错误(除非我删除<T extends Model>):

enter image description here

1 个答案:

答案 0 :(得分:2)

我想实现findAll的类也必须是参数化类,这里是你必须使用的签名(或多或少):

public class TheClass<T> {

    private List<T> cachedObjects:

    public <T extends Model> List<T> findAll() {

    }

}

问题在于T findAll会覆盖类的T。只需使用其他名称作为方法的参数:

public <U extends Model> List<U> findAll() {

}

或者不要参数化您的方法:

public List<T> findAll() {

}