簡體   English   中英

番石榴收藏過濾器

[英]Guava Collections filter

我只是從Guava集合開始,正在嘗試為列表編寫謂詞。 我正在使用Guava 11,因為我在Java 5上。

這是我的第一步。

public abstract class StatusBean {
    public enum Status {GREEN, AMBER, RED, BLUE};
}

public class RegisterReplicationSynchTime {
    private Status status = null;
    public Status getStatus() {
        return status;
    }
    public void setStatus(Status status) {
        this.status = status;
    }
}

public class RegisterReplicationSynchTime {

    public void doFilter() {

        List<RegisterReplicationSynchTime> registerReplicationSynchTimes = dao.getMyList();

        Predicate<StatusBean.Status> predicate = new Predicate<StatusBean.Status>() {                   
            public boolean apply(StatusBean.Status status) {
                return status != StatusBean.Status.GREEN;                       
            }
        };
        // !!!! COMPILER DOES NOT LIKE THIS LINE!!!!!!
        Collections2.filter(registerReplicationSynchTimes, predicate); 
    }
}

編譯器不喜歡我要過濾的調用,它給了我如下錯誤。

The method filter (Collection<E>,<Predicate<? super E>) in the type
Collections 2 is not applicable for the arguements
(List<RegisterReplicationSynchTime>,Predicate<StatusBean.Status>)

我不確定該怎么做才能正確處理。 有人可以幫我嗎?

如錯誤消息所告知, List的元素類型( RegisterReplicationSynchTime )與謂詞處理的元素( StatusBean.Status )之間不匹配。

也許您想更改代碼以過濾List<StatusBean.Status>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM