先贴代码:(这个是Name类,下面要用到)
然后是测试程序和结果:
我查阅的collections中的sort的方法:
问题一:
我调用sort方法,到底有没有用到Name类中的compareto方法
如果用到:
那为什么他可以使用name中的compareto方法,是怎么来的。
没有用到的话:
那么为什么他能按照先比较第二个字符串,在比较第一个字符串排列。
问题二:
<E extends Comparable> 这是一个泛型,我明白,但Comparable是一个接口,为什么可以extends
我明白< ? extends T>这里面的称为受限通配,表示T或T的一个未知子类型,但这还是子类么?
------解决方案--------------------
问题一:
我调用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;
}
------解决方案--------------------
接口和接口间用extends