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 楼答案
在我看来,您可能希望首先将iterable筛选为
AddReport
的实例,您可以这样做: