当使用Collections.sort(List<T> list)
时,与List<Employee>
,其中Employee
是一个不扩展的类Comparable
接口。仿制药 - 收集分类方法
直到看见以下编译错误
在类型
Collections
方法sort(List<T>)
不适用的参数(List<Employee>
)。
我不明白为什么T
应该实现Comparable
,它没有任何地方sort
方法的方法参数指定。
更新:请停止downvoting。我一直认为只有方法参数决定了作为参数传递的内容,但我在方法签名中看到了<T extends Comparable<? super T>>
,但在方法签名中看不到它。访问修饰符,静态或不是,返回类型,方法的名称是我知道的,但多余的是什么?
更新:我没有意识到这一点:“所有的泛型方法声明具有(<和>)由尖括号分隔的类型参数部分先于方法的返回类型”
是的,它是:['public static> void sort(List list)'](https://docs.oracle。com/javase/7/docs/api/java/util/Collections.html#sort%28java.util.List%29) –
resueman
作为一般规则,如果您无法手动执行某些操作(即使缓慢:)),那么计算机也是如此。所以记住这一点:如果我给了你一个FooBars的列表,并且没有关于FooBar的信息,并要求你对它们进行排序 - 你会怎么做?这两个答案是为了让FooBar能够告诉你如何对自己进行排序(即它是Comparable)还是让你告诉我如何比较它们(即传入比较器)。 – yshavit
我只是不明白'>'是在方法签名中。它不是访问修饰符,返回类型,方法名称,那么它是什么呢? –
user2296988