java通用函数中的多个扩展

java通用函数中的多个扩展,java,generic-programming,generic-list,Java,Generic Programming,Generic List,我想实现一个简单的排序函数,对列表进行排序并返回排序后的列表(非常简单!)。所以我写了这个 public static <T extends List<? extends Comparable>> T sort(T objects) { Collections.sort(objects); return objects; } publicstatic正如@Bejan-George所指出的,在这种情况下,泛型类型不应该是列表中的元素,而是列表中包含的可比较

我想实现一个简单的排序函数,对列表进行排序并返回排序后的列表(非常简单!)。所以我写了这个

public static <T extends List<? extends Comparable>> T sort(T objects)
{
    Collections.sort(objects);
    return objects;
}

publicstatic正如@Bejan-George所指出的,在这种情况下,泛型类型不应该是列表中的元素,而是列表中包含的可比较元素

正确的实施方式是:

public static <T extends Comparable> List<T> sort(List<T> objects) {
    Collections.sort(objects);
    return objects; 
}
公共静态列表排序(列表对象){
集合。排序(对象);
归还物品;
}

正如@Bejan George所指出的,本例中的泛型类型不应是列表中的元素,而应是列表中包含的可比较元素

正确的实施方式是:

public static <T extends Comparable> List<T> sort(List<T> objects) {
    Collections.sort(objects);
    return objects; 
}
公共静态列表排序(列表对象){
集合。排序(对象);
归还物品;
}

其中一个问题是,如果
T扩展了P
List
没有扩展
List

,那么你的泛型就不正确了,因为你希望
T扩展List
。那么这个方法的初衷是什么?为什么不调用Collections.sort()呢?!问题之一是,如果
T扩展了P
List
没有扩展
List

,那么你的泛型就不正确了,因为你希望
T扩展List
。那么这个方法的初衷是什么?为什么不调用Collections.sort()呢?!