哪个是检查两个Date()
对象是否相等且具有null安全功能的最佳方法?
日期d1
日期d2
d1 = null, d2 = new Date() => equal false
d1 = null, d2 = null => equal true
d1 = SAME_INSTANT, d2 = SAME_INSTANT => equal true
d1 = new Date(), d2 = YESTERDAY => equal false
答案 0 :(得分:4)
如果参数彼此相等,则返回true,否则返回false。因此,如果两个参数都为null,则返回true;如果正好一个参数为null,则返回false。否则,将使用第一个参数的equals方法确定相等性。
答案 1 :(得分:3)
自Java-7起,使用:
Objects::equals
如果可以,请停止使用java.util.Date
;当您需要Instant
时使用Date
-更易于使用,并且更不易出错。
答案 2 :(得分:0)
Optional.ofNullable(d1).map(d -> d.equals(d2)).orElseGet(() -> d2 == null);
在其中任何一个为空时都有效