有关泛型以及collections.sort()方法的问题

J2EE 码拜 6年前 (2015-04-17) 480次浏览 0个评论

先贴代码:(这个是Name类,下面要用到)
有关泛型以及collections.sort()方法的问题

然后是测试程序和结果:
有关泛型以及collections.sort()方法的问题

我查阅的collections中的sort的方法:
有关泛型以及collections.sort()方法的问题

问题一:
我调用sort方法,到底有没有用到Name类中的compareto方法
如果用到:
那为什么他可以使用name中的compareto方法,是怎么来的。
没有用到的话:
那么为什么他能按照先比较第二个字符串,在比较第一个字符串排列。

问题二:
<E extends Comparable> 这是一个泛型,我明白,但Comparable是一个接口,为什么可以extends
我明白< ? extends T>这里面的称为受限通配,表示T或T的一个未知子类型,但这还是子类么?

有关泛型以及collections.sort()方法的问题
电脑小白,思路比较乱。。。如果看不懂,我在讲详细一点。
有关泛型以及collections.sort()方法的问题
10分
问题一:
我调用sort方法,到底有没有用到Name类中的compareto方法
 当然使用到了compareto方法….
那为什么他可以使用name中的compareto方法,是怎么来的。
 它是使用的声明式,函数式风格…使用接口的式调用的..
 
 

问题二:
<E extends Comparable> 这是一个泛型,我明白,但Comparable是一个接口,为什么可以extends
我明白< ? extends T>这里面的称为受限通配,表示T或T的一个未知子类型,但这还是子类么? 
这个T是可以自定义的类型..例如::下面的curType, lastRetType, litype
public static <curType, lastRetType, litype> lastRetType reduceO4d(
litype li, lastRetType iniValue,
Fun_4reduce<curType, lastRetType> fun_4reduce) {
// attilax 老哇的爪子 上午10:14:03 2014-5-15
lastRetType lastVal = null;

if (iniValue != null)
lastVal = iniValue;

if (li instanceof List) {
// if (lastVal == null)
//
// lastVal = new ArrayList();

List<curType> objLi = (List) li;
for (int i = 0; i < objLi.size(); i++) {
lastVal = fun_4reduce.$(objLi.get(i), lastVal);

}
return (lastRetType) lastVal;
}

return null;
}

有关泛型以及collections.sort()方法的问题
<E extends Comparable> 这是一个泛型,我明白,但Comparable是一个接口,为什么可以extends?
接口不是只能implements吗?
有关泛型以及collections.sort()方法的问题
10分
引用 3 楼 Mon_key_DT 的回复:

<E extends Comparable> 这是一个泛型,我明白,但Comparable是一个接口,为什么可以extends?
接口不是只能implements吗?

接口和接口间用extends 

有关泛型以及collections.sort()方法的问题
也就是说E也是一个接口?
有关泛型以及collections.sort()方法的问题
引用 4 楼 longtian1213 的回复:
Quote: 引用 3 楼 Mon_key_DT 的回复:

<E extends Comparable> 这是一个泛型,我明白,但Comparable是一个接口,为什么可以extends?
接口不是只能implements吗?

接口和接口间用extends 

E 可是是任何类型,不一定是一个接口吧。


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明有关泛型以及collections.sort()方法的问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!