before()在与null进行比较时失败

时间:2015-06-26 14:23:11

标签: java function if-statement logic

我正在使用.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))

是否有更简洁的方法来做这件事?

1 个答案:

答案 0 :(得分:1)

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

您提供的代码不起作用,因为首先比较旧的和更新的,然后将它们的结果变为null,同时old.before(较新的)

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

这应该做,当时进行一次比较

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