Java 如何使用可比较接口对不同对象类型的数组列表进行排序

Java 如何使用可比较接口对不同对象类型的数组列表进行排序,java,Java,这是课堂作业的一部分,我不明白这句话对拯救我自己的生命意味着什么 public static <T extends Comparable<? super T>> void sort(Arraylist<T> list){} publicstatic因此,如果我理解正确,您可以为通用排序方法创建一个实现 如果调用“sort”方法时arraylist中充满了字符串,则该方法将对这些字符串进行排序: public static <String> voi

这是课堂作业的一部分,我不明白这句话对拯救我自己的生命意味着什么

public static <T extends Comparable<? super T>> void sort(Arraylist<T> list){}

publicstatic因此,如果我理解正确,您可以为通用排序方法创建一个实现

如果调用“sort”方法时arraylist中充满了字符串,则该方法将对这些字符串进行排序:

public static <String> void sort(Arraylist<String> list){}
publicstaticvoid排序(Arraylist列表){}
如果在arraylist中调用了相同的方法,并且该arraylist中充满了长值,则该方法将对长值进行排序:

public static <Long> void sort(Arraylist<Long> list){}
publicstaticvoid排序(Arraylist列表){}
您不会使用long对字符串进行排序

另一种通用方法的示例可以是:

public static <T> void print(T object){
    System.out.println(object.toString());
}

public static <T extends Comparable<? super T>> void sort(Arraylist<T> list){}
公共静态无效打印(T对象){
System.out.println(object.toString());
}

public static您得到的列表只包含一种类型
T
,而且您知道
T
comparable的一个子类型为什么要在一个列表中存储不同的对象类型?!排序的逻辑是什么?如何对
整数
s、
双精度
s和
字符串
s进行排序?“建筑工人鲍勃”是大于17.43还是小于17.43?@Prexx我不知道!因为就我所知,它在指令中。他没有在arraylist中接收不同的对象,他接收的是类型为T的arraylist。T可以是任何类型的对象,而不是不同对象的混合。谢谢,我终于理解了这个问题。我无法理解语句
您想要一个扩展T的generictype吗(
好的,谢谢。所以
Timestamp
扩展了
Date
但是
Timestamp
没有自己的
compareTo
方法。因此,我必须指定我可以使用
Date
中的
compareTo
方法。这或多或少是一个想法吗?是的,这就是这个想法。
Timestamp
有actually自己实现的
compareTo(日期)
,但这是一个实现细节。顺便说一句,Java API的这一部分被广泛认为是一个设计缺陷(例如
数据)。当
timestamp.compareTo(日期)时,compareTo(时间戳)
可以给出0的结果
不适用于
日期
时间戳
的相同值。
<T extends Comparable<>
<? super T>