2012-08-13 21 views
5

Bir sınıfta compareTo() uygulamak için ComparisonChain kullanmaya çalışıyorum ancak sınıf bir Liste içeriyor ve Karşılaştırma(), List karşılaştırılamaz olduğu için bunları kabul etmiyor. Bunun nasıl yapılacağına dair herhangi bir fikir var mı? Denedim zamanGuava KarşılaştırmasıYahina Listesi?

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

cevap

12
ComparisonChain.start() 
    .compare(this.name, that.name) 
    .compare(this.emails, that.emails, 
     Ordering.<String>natural().lexicographical()) 
    .result(); 
+0

Aha, ben parmameterization bilgileri eksikti: kodun

Alt Küme şuna benzer. Şimdi her şey yolunda, teşekkürler! – jgm