我正在使用.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))
是否有更简洁的方法来做这件事?
答案 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))