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