Java泛型类型参数
我很难让我的代码运行。我有一个通用方法,它应该对给定列表中的所有重复项进行排序和删除。列表中的项(例如字符串)都实现了可比较的接口。 不幸的是,代码没有编译,我不明白为什么Java泛型类型参数,java,generics,Java,Generics,我很难让我的代码运行。我有一个通用方法,它应该对给定列表中的所有重复项进行排序和删除。列表中的项(例如字符串)都实现了可比较的接口。 不幸的是,代码没有编译,我不明白为什么 public static <T> List<T> distinctAndSort(List<T> s) { List<T> list = s.stream().distinct().collect(Collectors.toList()); Collectio
public static <T> List<T> distinctAndSort(List<T> s) {
List<T> list = s.stream().distinct().collect(Collectors.toList());
Collections.sort(list); //Error
return list;
}
公共静态列表distinctAndSort(列表s){
List List=s.stream().distinct().collect(Collectors.toList());
Collections.sort(list);//错误
退货清单;
}
这就是我目前得到的。为什么我不能对我的
列表
进行排序?(方法sort(List将您的类型变量声明为:
<T extends Comparable<? super T>>
根据文档,Collections.sort(List)
必须是Comparable
s的列表,或者您必须提供一个Comparator
。您可以更改签名:
public static <T extends Comparable<? super T>> List<T> distinctAndSort(List<T> s)
公共静态
public static <T extends Comparable<? super T>> List<T> distinctAndSort(List<T> s)