5

クラスにcompareTo()を実装するためにComparisonChainを使用しようとしていますが、クラスにはListが含まれており、ListはComparableを実装していないため、compare()はそれらを受け入れません。これを機能させる方法についてのアイデアはありますか?

コードのサブセットは次のようになります。

public class User() {
  String name;
  List<String> emails;

  ...

  public int compareTo(User that) {
    return ComparisonChain().start()
                            .compare(this.name, that.name)
                            .compare(this.emails, that.emails)  // Fails on this line
                            .result();
  }
}
4

1 に答える 1

14
ComparisonChain.start()
    .compare(this.name, that.name)
    .compare(this.emails, that.emails,
       Ordering.<String>natural().lexicographical())
    .result();
于 2012-08-13T20:39:26.657 に答える