有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java是不可移植的。过滤和收集2。惰性过滤器?

我尝试过滤AddReport类型的所有元素

但是当在谓词体中放置断点时,我看到那里的代码没有执行

它懒惰吗?我看到各种各样的子类

不仅仅是AddReport

    Iterable<BaseClass> filtered =
            Iterables.filter(myList,
                    new Predicate<BaseClass>() {
                        @Override
                        public boolean apply(@Nullable BaseClass input) {
                            AddReport addReport = (AddReport) input;
                            return ((addReport != null) && addReport.description.equals(messageBody));
                        }
                    });

    Collection<BaseClass> filtered2
            = Collections2.filter(myList,
            new Predicate<BaseClass>() {
                @Override
                public boolean apply(@Nullable BaseClass input) {
                    AddReport addReport = (AddReport) input;
                    return ((addReport != null) && addReport.description.equals(messageBody));
                }
            });

共 (1) 个答案

  1. # 1 楼答案

    在我看来,您可能希望首先将iterable筛选为AddReport的实例,您可以这样做:

    Iterable<AddReport> addReports = Iterables.filter(myList, AddReport.class);