Pi53:
私は複数持つコードの一部の下に簡素化したいif
とelse
全く例えば、いくつかのJava 8の機能を使用してそれらを取り除くための方法はありますJavaの8を使用した文Optional
?私はここで何かを見つけることを試みたが、答えを見つけることができませんでした。
LocalDateTime beDate = someDate;
LocalDateTime aeDate = someDate;
LocalDateTime eDate;
if (beDate == null && aeDate == null) {
eDate = null;
}
else if (beDate != null && aeDate == null) {
eDate = beDate;
}
else if (beDate == null && aeDate != null) {
eDate = aeDate;
}
else if (beDate != null && aeDate != null &&
(beDate.isEqual(aeDate) || beDate.isBefore(aeDate))) {
eDate = beDate;
}
else {
eDate = aeDate;
}
chrylis -on strike-:
ここでのロジックを理解することは非常に困難です。代わりに、より直接的に自分の意思を表現します:
private static final Comparator<ChronoLocalDateTime<?>> EARLIEST_PRESENT =
Comparator.nullsLast(Comparator.naturalOrder());
LocalDateTime eDate = BinaryOperator.minBy(EARLIEST_PRESENT).apply(beDate, aeDate);
(からの要素の静的インポートことを注意Comparator
とはBinaryOperator
、これがより明確になります。)