泛型List<T>(T继承Comparable)调用stream.min需传入什么Comparator?
泛型List的stream.min()调用解决方案
因为你的泛型T继承了Comparable<T>,调用stream().min()时可以通过以下两种方式传入所需的Comparator<T>:
使用
Comparator.naturalOrder():这个方法会直接利用T自身实现的compareTo方法进行自然排序,是最简洁的写法:List<T> val = current.getValues(); return val.stream().min(Comparator.naturalOrder());使用方法引用
T::compareTo:直接引用T类的compareTo方法作为比较逻辑,本质和上面的方式一致:List<T> val = current.getValues(); return val.stream().min(T::compareTo);
注意事项
如果你的T是继承了不带泛型参数的Comparable(比如class T implements Comparable),建议修改为class T implements Comparable<T>,这样能避免类型转换警告,同时更符合泛型编程的规范。
内容的提问来源于stack exchange,提问作者Relez_
相关产品推荐
相关产品推荐

