java中泛型限定<? extends Comparable<? super T>> 和 <T extends Comparable<? super T>> 有什么区别?

详细说下,谢谢!!!!!... 详细说下, 谢谢!!!!! 展开
 我来答
super_人仔
2017-11-18
知道答主
回答量:17
采纳率:0%
帮助的人:3.3万
展开全部
我也是刚学这个没多久,不能保证我的说法完全正确。我的理解是
<? extends Comparable<? super T>>代表任何实现了comparable接口的实例,且接口的类型是comparable<T 或其父类>。
<T extends Comparable<? super T>>代表类型是T的实例,且这个T要实现comparable 接口,接口的类型是comparable<T 或其父类>

两者的区别大概是前者范围更广,可以是T 或其子类,甚至是只要实现了comparable<T 或其父类>接口的其他类(虽然觉得没啥卵用)。而后者,只能是T 。。
小童鞋_成er
2015-01-21 · 知道合伙人数码行家
小童鞋_成er
知道合伙人数码行家
采纳数:4650 获赞数:22879
主要从事J2EE工作,热爱Java,用心讨论技术,共同进步。

向TA提问 私信TA
展开全部
您好,提问者:
<? extends Comparable>
这个?就是传过来的对象不确定,而且必须是Comparable的子类或者子接口。
<? super T>
这个表示传过来的值,是定义T泛型的父类,如果不是给出代码检测失败。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友594bbf3
2018-10-22 · TA获得超过485个赞
知道答主
回答量:135
采纳率:33%
帮助的人:22.1万
展开全部
我是这样理解的:
首先<? extends Comparable<? super T>> 和<T extends Comparable<? super T>> 这两个,是两种不同的类型形参范围设置方式,前者是通配符的形式,后者是自定义类型的形式。
这两者在有些时候可以通用,有时则不能或者不合适。
通配符是被设计用来支持子类灵活化的,如果某个方法中一个形参a的类型或返回值的类型依赖于另一个形参b的类型,则形参b的类型声明不应该使用通配符,因为依赖性比较强,b类型无法确定,a也无法定义。这时就要采用自定义类型传入自定义的T.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式