
2个回答
展开全部
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
展开全部
一个是显示的类型 一个不明显,,,,,,,,使用起来一个方便、一个不方便
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询