Java 泛型-集合排序方法

Java 泛型-集合排序方法,java,generics,Java,Generics,使用Collections.sort(List)时,使用List,其中Employee是一个不扩展compariable接口的类 然后我看到以下编译错误 类型集合中的方法排序(列表)不适用于参数(列表) 我不明白为什么T应该实现Comparable,在sort方法的方法参数中没有指定它 更新:请停止投票。我一直认为只有方法参数决定作为参数传递的内容,但我看到了完整的签名: public static <T extends Comparable<? super T>> vo

使用
Collections.sort(List)时,使用
List
,其中
Employee
是一个不扩展
compariable
接口的类

然后我看到以下编译错误

类型
集合
中的方法
排序(列表)
不适用于参数(
列表

我不明白为什么
T
应该实现
Comparable
,在
sort
方法的方法参数中没有指定它


更新:请停止投票。我一直认为只有方法参数决定作为参数传递的内容,但我看到了完整的签名:

public static <T extends Comparable<? super T>> void sort(List<T> list)

public static
public static对于int、long、float等原始数据类型,比较是预定义的。
排序接受预定义的比较度量并对变量进行排序

但是,创建类时,类可以由许多不同的基本类型甚至其他对象组成。Java无法自动知道如何进行比较,因此它需要扩展可比较接口并定义指定如何排序的函数。例如

Class car {
int id; 
String name;
String company;
}
在实现comparable之后,您可以定义排序是否取决于车辆的id、名称或公司名称。
希望这能消除一些需要。

对于泛型,有两种方法:1。通配符和2.有界类型参数

通配符示例:
public void sort(ListYes:一般来说,如果你不能手动执行某些操作(即使很慢),那么计算机也不能。记住这一点:如果我给你一个FooBar列表,没有关于FooBar是什么的信息,让你对它们进行排序——你会怎么做?这两个答案是为了让FooBar能够告诉你如何对自己进行排序(即,它是可比较的),或者让你也告诉我如何对它们进行比较(即,传递一个比较器)。我只是不明白上次更新对我非常有用什么是

Class car {
int id; 
String name;
String company;
}