在Java中,我使用一个类,其中一些字段可以null
。例如:
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
can be null
,无需编写大量嵌套if
...else
?
Cheers!
我想您可以使用一个小的静态方法来包装对字段compareTo方法的调用,以对空值进行高或低排序:
static <T extends Comparable<T>> int cp(T a, T b) {
return
a==null ?
(b==null ? 0 : Integer.MIN_VALUE) :
(b==null ? Integer.MAX_VALUE : a.compareTo(b));
}
简单用法(多个字段与平常一样):
public int compare( final Foo o1, final Foo o2 ) {
return cp(o1.field, o2.field);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)