before() 在与空值比较时失败

before() failing while comparing with nulls

我正在使用 .before() 函数来确保旧值小于新值,但问题是我允许用户在这两个值中的任何一个中包含空值,因此当 .before() 将值与 null 进行比较...失败。

我的代码:

public getDetails(Calendar older, Calendar newer) {
    if (older.before(newer)) {
        System.out.println("Works");
    } else {
        System.out.println("Works");
    }
}

我想到的一个替代方法是检查任何值是否为 null 并让函数通过。

所以我尝试了:

if ((older || newer) == null || older.before(newer))

有没有更简洁、更短的方法来做到这一点?

不传递 null 更好...Java 8 可以选择可选...这意味着可以不提供任何值...Optional.isPresent()...

您提供的代码无法运行,因为首先比较旧的和更新的,然后它们的结果为 null,同时 older.before(newer)

if ((older || newer) == null || older.before(newer))

这个应该可以,一对比就知道了

if( older==null || newer==null || older.before(newer))