2012-08-13 44 views
5

Tôi đang cố gắng sử dụng CompareChain để thực hiện compareTo() trong một lớp tuy nhiên lớp có chứa một List và compare() không chấp nhận chúng bởi vì List không thực hiện Comparable. Bất kỳ ý tưởng về cách thực hiện công việc này?So sánh ổiChọn Danh sách Wtih?

tập hợp con của mã trông giống như sau:

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

Trả lời

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

Aha, tôi đã thiếu thông tin parmameterization khi tôi cố gắng đó. Tất cả các công trình tốt bây giờ, cảm ơn! – jgm

Các vấn đề liên quan