【发布时间】:2019-12-07 22:23:52
【问题描述】:
如何在如下代码中将.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(),并在需要时反转比较器。但是,仅使用两种不同的方法有什么问题?与将“表达式”作为参数传递相比,它们更具可读性和使用安全性。
标签: java java-8 java-stream max min