我有一堆基本上做同样事情的方法:根据类的不同方法返回的值选择类的前 N 个实例,所有方法都返回双精度值。
例如,对于实现以下接口的类的对象:
interface A {
Double getSalary();
Double getAge();
Double getHeight();
}
我想选择每个方法返回值最高的 N 个对象。
现在我有3种方法:
List<A> getTopItemsBySalary(List<A> elements);
List<A> getTopItemsByAge(List<A> elements);
List<A> getTopItemsByHeight(List<A> elements);
它有这个身体:
List<A> getTopItemsBySalary(List<A> elements, int n) {
return elements.stream()
.filter(a -> a.getSalary() != null)
.sorted(Comparator.comparingDouble(A::getSalary).reversed())
.limit(n)
.collect(Collectors.toList());
}
我如何传入方法并且只有一种方法?
墨色风雨
哔哔one
慕婉清6462132
相关分类