java中 Comparable 类型变量和 key extends Comparable<key>

这两者之间有什么区别... 这两者之间有什么区别 展开
 我来答
可不大方
推荐于2018-01-03
知道答主
回答量:10
采纳率:0%
帮助的人:3.8万
展开全部

Key extends Comparable<Key>:这里相当于使用泛型,但是这里的泛型Key有限制,表示必须实现Comparable<Key>这个接口才能当成参数传递;如Java自带的Integer、String都符合这个要求;而且这种写法只能当成类的泛型使用,这里其实是将泛型Key擦除到它的一个边界

而Comparable 本身是一个接口,如果一个类如:class Key implements Comparable<Integer>{} 也是Comparable的子类,即前后可以不一致;而且Comparable本身一般不做泛型使用;另外Comparable可以当成方法的参数使用。

还有Java编程思想提到的很重要的一点:只有当你希望使用的类型参数(这里指使用的泛型)比某个具体类型(以及它的所有子类)更加“泛化”时--也就是说,当你希望代码能够跨多个类工作时,使用泛型才有所帮助。但是,不能因此而认为<Key extends Comparable<Key>> 形式的任何东西都是有缺陷的。例如某个类有一个返回Key的方法,那么泛型就会有所帮助,因为它们之后将返回确切的类型(编译器会自动将类型转换为Key类型):

class ReturnGenericType<Key extends Comparable<Key>> {
    private Key key;
    
    public ReturnGenericType(Key k){
        this.key = k;
    }
    
    public Key get() {
return key;
    }
}
匿名用户
2015-09-22
展开全部
一个是显示的类型 一个不明显,,,,,,,,使用起来一个方便、一个不方便
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式