Guava Collections 过滤器

Guava Collections filter

我刚开始使用 Guava collections 并尝试为列表编写谓词。我正在使用 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>