黑马程序员技术交流社区
标题:
关于集合工具类Collections中的泛型问题,求详细解答。
[打印本页]
作者:
doitforyou
时间:
2013-10-27 11:27
标题:
关于集合工具类Collections中的泛型问题,求详细解答。
疑惑的泛型方法:
static <T> Comparator<T> reverseOrder()
用法:
TreeSet<String> ts = new TreeSet<String>(
Collections.reverseOrder())
;
疑惑之处:
方法是泛型的,但是在调用中,也就是红色部分,没有使用泛型,那么String类型如何传进此方法中呢?
求详细解读,并可延伸说下泛型易出错的用法,谢谢了。
作者:
李慧声
时间:
2013-11-7 16:49
个人觉得吧,
Set<String> ts = new TreeSet<String>(Collections.reverseOrder());
你这么创建ts了,不是已经明确了,对象就是String了,为何在后面还要多此一举的写上Collections<String>.reverseOrder(),本身就是String,还要强调的话,没多大意思,再说了你怎么加泛型啊,编译器报的错误是非法表示错误,也就是说,编译器压根儿就不认识这种表达式,是语法错误,而不是逻辑错误,可能人家在设计的时候去掉了泛型吧,好吧jdk1.7中对泛型的省略
Set<String> ts = new TreeSet<>(),后面再就没有必要了。
只是个人理解,具体是怎么回事,还是看源码比较OK。。。
作者:
aion2013tian
时间:
2013-11-7 18:41
首先集合存储的对象一般为同一种类型,Collections.reverseOrder()会从传入的第一个元素进行确定存储对象的类型,相当于第一个元素既是存储对象,又可以充当泛型的作用
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2