在3个日期中查找最早的日期

我在Java中有三个约会:a,b,c。这些日期中的任何一个或所有日期都可以为空。在没有大量if-

else块的情况下确定a,b,c中最早日期的最有效方法是什么?

回答:

无法避免空值检查,但是通过一些重构,您可以使其变得更轻松。

创建一个安全地比较两个日期的方法:

/**

* Safely compare two dates, null being considered "greater" than a Date

* @return the earliest of the two

*/

public static Date least(Date a, Date b) {

return a == null ? b : (b == null ? a : (a.before(b) ? a : b));

}

然后结合调用:

Date earliest = least(least(a, b), c);


实际上,您可以将此方法用作任何通用方法Comparable

public static <T extends Comparable<T>> T least(T a, T b) {

return a == null ? b : (b == null ? a : (a.compareTo(b) < 0 ? a : b));

}

以上是 在3个日期中查找最早的日期 的全部内容, 来源链接: utcz.com/qa/406270.html

回到顶部