有没有人知道Java中的某种Comparator工厂,有一个
public Comparator getComparatorForClass(Class clazz) {}
它会返回比较器,比如String,Double,Integer,但会有一个
public void addComparatorForClass(Class clazz, Comparator comparator) {}
对于任意类型.
代替:
factory.getComparatorForClass(x.getClass()).compare(x, y)
你可以简单地实现Comparable
和写:
x.compareTo(y)
String,原始包装器和标准集合已经实现Comparable
.
使用CompareToBuilder
Commons Lang.
协助实现Comparable.compareTo(Object)方法.
要使用此类,请按如下方式编写代码:
public class MyClass { String field1; int field2; boolean field3; ... public int compareTo(Object o) { MyClass myClass = (MyClass) o; return new CompareToBuilder() .appendSuper(super.compareTo(o) .append(this.field1, myClass.field1) .append(this.field2, myClass.field2) .append(this.field3, myClass.field3) .toComparison(); } }