当前位置:  开发笔记 > 编程语言 > 正文

Java Comparator

如何解决《JavaComparator》经验,为你挑选了2个好方法。

有没有人知道Java中的某种Comparator工厂,有一个

public Comparator getComparatorForClass(Class clazz) {}

它会返回比较器,比如String,Double,Integer,但会有一个

public void addComparatorForClass(Class clazz, Comparator comparator) {}

对于任意类型.



1> ngn..:

代替:

factory.getComparatorForClass(x.getClass()).compare(x, y)

你可以简单地实现Comparable和写:

x.compareTo(y)

String,原始包装器和标准集合已经实现Comparable.



2> IAdapter..:

使用CompareToBuilderCommons 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();
  }
}

推荐阅读
wangtao
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有