Java 比较比较器的UTIL
有时我必须使用多个字段来比较POJO列表,例如,首先通过Java 比较比较器的UTIL,java,compare,comparator,Java,Compare,Comparator,有时我必须使用多个字段来比较POJO列表,例如,首先通过布尔isExternal()字段,然后通过字符串getName()字段 我想知道是否有已知的比较工具来做这件事 代码段: @Override public int compare( CompanyProject o1, CompanyProject o2 ) { return CompareBuilder.compareBoolean(o1.isExternal(), o2.isExternal()).com
布尔isExternal()
字段,然后通过字符串getName()
字段
我想知道是否有已知的比较工具来做这件事
代码段:
@Override
public int compare( CompanyProject o1, CompanyProject o2 ) {
return CompareBuilder.compareBoolean(o1.isExternal(), o2.isExternal()).compareString(o1.getName(), o2.getName()).getResult();
}
不想写自行车:)你可能想要Apache Commons Lang。试试番石榴:
Java 8具有一些允许构建和链接比较器的功能:
Comparator.comparing(Pojo::isExternal)
.thenComparing(Pojo::getName);
@omickron事实上,番石榴溶液如果短路可能更好。Commons-Lang的东西很经典,但已经过时了。Apache Commons-Lang看起来离我更近了:)谢谢,我没有提到,我需要一个Java 7的解决方案。至少你现在在7上。我最近回答了一个被困在1.4的家伙的问题:-(可怜的家伙!我真的很抱歉那些不得不支持1.4或1.5版本的人。更新链接
Comparator.comparing(Pojo::isExternal)
.thenComparing(Pojo::getName);