在Java中,大写Double可以为null。
但是,如果我有双打a
和b
并且我这样做:
if (a.equals(b))
如果其中一个为空,它就会崩溃。有没有更好的方法来比较它们?
答案 0 :(得分:2)
Java 7+中最简单的方法是:
Objects.equals(a, b)
如果您使用的是早期版本的Java,则可以使用条件运算符:
(a != null) ? a.equals(b) : (b == null)
答案 1 :(得分:0)
这是正确的,遗憾的是你必须添加额外的空值检查。 所以你要么必须写
if ((a != null && a.equals(b)) || (a == null && b == null))
或您的代码不得接受null
值。
答案 2 :(得分:0)
简短的方法可能是:
boolean c = (a != null && b != null) ? a.equals(b) : false;
if (c){
...
}
答案 3 :(得分:-1)
使用
if (null != a && null != b && a.compareTo(b) == 0) {
// whatever goes here
}