如何将 .min()
或 .max()
表达式作为方法参数传递给这样的代码:
给定代码:
private LocalDate getMaxDate() {
LocalDate maxdate = dates.stream()
.max( Comparator.comparing( LocalDate::toEpochDay ) )
.get();
}
private LocalDate getMinDate() {
LocalDate maxdate = dates.stream()
.min( Comparator.comparing( LocalDate::toEpochDay ) )
.get();
}
我所期望的代码:
private LocalDate getDate(SomeType _EXPR_){
LocalDate maxdate = dates.stream()
._EXPR_( Comparator.comparing( LocalDate::toEpochDay ) )
.get();
}
提示:
_EXPR_
应该是 .min()
,有时也是 .max()
。
SomeType
定义为枚举类型(或者只使用布尔值),以此来切换最小值和最大值,总是使用.min()
或.max()
方法,并在需要时反转比较器。但是,直接使用这两种不同的方法有什么问题吗?相比于将“表达式”作为参数传递,它们更易读且更安全。 - Thomas