Guava:ComparisonChain
java guava    2018-08-31 23:54:17    0    0    0
cqc   java guava

示例

public int compareTo(Foo that) {
    return ComparisonChain.start()
        .compare(this.aString, that.aString)
        .compare(this.anInt, that.anInt)
        .compare(this.anEnum, that.anEnum, Ordering.natural().nullsLast())
        .result();
  }


ComparisonChain是一个设计很巧妙的chain类,从start方法开始,就返回一个ACTIVE状态的ComparisonChain实现类,该类适配各类的比较方法,当compare方法返回0时,则继续返回ACTIVE状态的ComparisonChain实现类,继续后续的compare。直到compare不返回0后,他就返回一个inactive状态的ComparisonChain实现类,该类的所有compare方法不做任何比较,只返回自身,并且result就是最后一个ACTIVE状态的ComparisonChain实现类compare的结果

上一篇: Guava:Bimap 双向映射

下一篇: Guava:MoreObjects

文档导航