【发布时间】:2019-11-09 18:13:46
【问题描述】:
有 2 个重载方法。
这些方法中的每一个都将一种类型的列表转换为不同类型的列表。但是第一种方法使用比较器。
class SomeClass {
public static <T, G> List<G> toListOfNewType(List<T> inputList,
Function<T, G> mapperFunction,
Comparator<? super G> comparator) {
return Stream.ofNullable(inputList)
.flatMap(List::stream)
.map(mapperFunction)
.sorted(comparator)
.collect(Collectors.toList());
}
public static <T, G> List<G> toListOfNewType(List<T> inputList,
Function<T, G> mapperFunction) {
return Stream.ofNullable(inputList)
.flatMap(List::stream)
.map(mapperFunction)
.collect(Collectors.toList());
}
}
如您所见,大部分行都是重复的。如何摆脱第二种方法,以便将 null 作为比较器传递给第一种方法不会破坏它?
换句话说,如何在没有比较器的情况下使第一个工作?
【问题讨论】:
-
包括
null支票?
标签: java java-8 java-stream comparator