疑惑的泛型方法:
static <T> Comparator<T> reverseOrder()用法:
TreeSet<String> ts = new TreeSet<String>(Collections.reverseOrder());疑惑之处:
方法是泛型的,但是在调用中,也就是红色部分,没有使用泛型,那么String类型如何传进此方法中呢?
求详细解读,并可延伸说下泛型易出错的用法,谢谢了。
static <T> Comparator<T> reverseOrder()用法:
TreeSet<String> ts = new TreeSet<String>(Collections.reverseOrder());疑惑之处:
方法是泛型的,但是在调用中,也就是红色部分,没有使用泛型,那么String类型如何传进此方法中呢?
求详细解读,并可延伸说下泛型易出错的用法,谢谢了。
解决方案 »
- 为什么jdk1.4里面的map存放不了int型的建和值?
- ArrayList[]与ArrayList()的问题
- Thinking In Java 第四版 上有个地方看不懂,不知道是不是陈吴鹏翻译问题~~
- 问个基础性的问题
- 请问,我如果想同时继承2个类该怎么办?
- 请:xxy(802)孔明再世进来领分(ver6.0)
- 求救!简单问题
- 学习java语言,使用vj++与jbuilder哪个java开发工具更好呢?
- 我刚学Java,用Javac编译一个例程没问题,但一用Java运行就出错:Exception in the thread "main" java.lang.NoClassDefFoundError: Welcome
- list中的toArray为什么报错
- socket接收报错,求指导
- JS求一效果,懂JS的大神麻烦进来看看
static
<T> Comparator<T>
reverseOrder()
Returns a comparator that imposes the reverse of the natural ordering on a collection of objects that implement the Comparable interface.
再看下TreeSet构造方法。
TreeSet(Collection<? extends E> c)
Constructs a new tree set containing the elements in the specified collection, sorted according to the natural ordering of its elements.
reverseOrder()返回的是一个比较器,然后TreeSet使用的构造方法应该是指定比较器的,和这个传入集合的构造方法不同吧。现在我主要不太明白在reverseOrder()没有返回比较器之前,它内部是如何知道自己所使用的泛型为String类型,通过什么方式传进去的呢?
public TreeSet(Comparator<? super E> comparator) {
this(new TreeMap<E,Object>(comparator));
}