【发布时间】:2017-01-20 22:51:04
【问题描述】:
TreeSet(Collection<? extends E> c)构造函数定义为:
构造一个包含指定集合中元素的新树集,根据其元素的自然顺序排序。插入集合中的所有元素必须实现 Comparable 接口。此外,所有此类元素必须相互可比较:e1.compareTo(e2) 不得为集合中的任何元素 e1 和 e2 抛出 ClassCastException。
是否有可能在语法上强制 Collection<? extends E> 中的 E 实现 Comparable?在上面的 JavaDoc 中,此检查推迟到执行时间...
【问题讨论】:
-
他们本可以做到
class TreeSet<E extends Comparable<? super E>>,但是您将无法将自定义比较器用于不可排序的类型。我想不出一种仅在单个构造函数上强制执行此操作的好方法。