2016-12-02 29 views
1

Android Studio在addAll()方法中爲sort()行提供了「API記錄爲@since 1.8+」的錯誤消息。我不太清楚這是什麼意思?爲什麼排序方法不適用於此自定義AbstractList實現?

所有我想要做的是一個自定義的List在那裏我可以通過Articles_MappublishedAt屬性排序List

AbstractArticlesList

public class AbstractArticlesList extends AbstractList<Articles_Map> { 
    private final List<Articles_Map> l; 

    public AbstractArticlesList() { 
     l = new ArrayList<>(); 
    } 

    public Articles_Map get(int index) { 
     return l.get(index); 
    } 

    public Articles_Map set(int index, Articles_Map element) { 
     Articles_Map oldValue = l.get(index); 
     l.add(index, element); 
     return oldValue; 
    } 

    public int size() { 
     return l.size(); 
    } 

    private void doAdd(Articles_Map another) { 
     l.add(another); 
    } 

    public void addAll(List<Articles_Map> others) { 
     for (Articles_Map a : others) { 
      doAdd(a); 
     } 
     l.sort(byPublishedAtComparator); 
    } 

    private final Comparator<Articles_Map> byPublishedAtComparator = 
      new Comparator<Articles_Map>() { 
       @Override 
       public int compare(Articles_Map o1, Articles_Map o2) { 
        if (o1.publishedAt == null) { 
         return (o2.publishedAt == null) ? 0 : -1; 
        } else if (o2.publishedAt == null) { 
         return 1; 
        } 
        return o1.publishedAt.compareTo(o2.publishedAt); 
       } 
      }; 
} 

Articles_Map

public class Articles_Map { 
    public final String title; 
    public final String description; 
    public final String url; 
    public final String urlToImage; 
    public final Date publishedAt; 

    public Articles_Map(String title, String description, String url, String urlToImage, Date publishedAt) { 
     this.title = title; 
     this.description = description; 
     this.url = url; 
     this.urlToImage = urlToImage; 
     this.publishedAt = publishedAt; 
    } 
} 
+0

會更低,如果你移動的compareFunction到AbstractArticlesList類insted的內部的它做...?也許可以添加類似於AbstractArticlesList類的實現。 – flaimme

+2

請注意,自我排序的'List'違反了'List'合約。真的,這不應該是一個'List',而應該是_have_一個具有正常實現的'List'。 –

回答

相關問題