首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >绑定不匹配:泛型类(泛型类扩展可比较类(泛型类扩展可比较))

绑定不匹配:泛型类(泛型类扩展可比较类(泛型类扩展可比较))
EN

Stack Overflow用户
提问于 2015-05-03 21:09:42
回答 1查看 282关注 0票数 0

我知道这听起来很混乱,但这是我能解释的最好的了。(你可以建议一个更好的标题)。我有三门课:-

A

代码语言:javascript
复制
public class A <T extends Comparable<T>> {
    ...
}

B

代码语言:javascript
复制
public class B {
    A<C> var = new A<C>(); 
    // Bound mismatch: The type C is not a valid substitute for the bounded parameter <T extends Comparable<T>> of the type A<T>
    ...
}

C

代码语言:javascript
复制
public class C <T extends Comparable<T>> implements Comparable<C>{
    private T t = null;
    public C (T t){
        this.t = t; 
    }
    @Override
    public int compareTo(C o) {
        return t.compareTo((T) o.t);
    }
    ...
}

在尝试在B中实例化A时,我收到了一个错误

界不匹配:C类型不能有效地替代A类型的有界参数

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-03 21:24:59

多亏了上面的评论,蜘蛛鲍里斯

问题是CB中的原始类型。将实例化更改为包含参数(取决于需要)

代码语言:javascript
复制
A< C<Integer> > var = new A< C<Integer> >();

编辑1:也要感谢下面的评论。更好的做法是将compareTo方法在C中更改为

代码语言:javascript
复制
public int compareTo(C<T> o) {
    return t.compareTo(o.t);
}

编辑2:同样,问题中有一个错误(w.r.t )。(以下评论)

代码语言:javascript
复制
public class C <T extends Comparable<T>> implements Comparable< C<T> >{...}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30019440

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档