2012-08-13 10 views
5

Estoy intentando usar ComparisonChain para implementar compareTo() en una clase; sin embargo, la clase contiene una lista y compare() no las acepta porque List no implementa Comparable. ¿Alguna idea de cómo hacer que esto funcione?Comparación de guayaba ¿Tiene esta carta?

subconjunto de código es como la siguiente:

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

Respuesta

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

Aha, me faltaba la información parmameterization cuando trataba de eso. Todo funciona bien ahora, gracias! – jgm

Cuestiones relacionadas