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()呢?!