在Java中,我使用了一个类,其中一些字段可以是null
。例如:如何处理compare()中的空字段?
class Foo {
String bar;
//....
}
我想写这个类BarComparator,
private static class BarComparator
implements Comparator<Foo> {
public int compare(final Foo o1, final Foo o2)
{
// Implementation goes here
}
}
是否有应对的事实,任何o1
,o2
,o1.bar
,o2.bar
可以null
一种标准的方式,没有写很多嵌套if
... else
?
干杯!
偏离主题我知道,但偏好MIN/MAX_VALUE超过 -/+ 1的原因是什么? – 2008-09-24 17:03:21
抱歉,延迟响应。这是为了确保我们有三角形的不平等。对于a> b> c,a.compareTo(b)+ b.compareTo(c)<= a.compareTo(c)。不是说任何人都会在意... – 2008-10-11 01:00:28
如果o1/o2为空,仍然可以抛出`NullPointerException`。你应该如何处理o1/o2为空? OP提到:o1,o2,o1.bar,o2.bar可以为null。或者是比较合同的一部分:比较空值应该抛出一个NPE? – Daniel 2014-06-18 06:43:08