我正在尝试过滤Guava中的对象。例如,我有一个班级团队,并希望让所有团队的职位低于5。
container_two
我遇到2个错误,谓词无法解析为类型,Iterables类型中的方法过滤器(Iterable,Predicate)不适用于参数(List<'Team'>,new Predicate<'队'>(){})
我能够过滤Integer类型的Iterables。
Iterable<Team> test = Iterables.filter(teams, new Predicate<Team>(){
public boolean apply(Team p) {
return p.getPosition() <= 5;
}
});
如何根据Guava中的成员过滤对象?我想在我的android项目中使用这个库,并有许多过滤条件。它可以用于类对象还是仅用于简单的数据类型?
答案 0 :(得分:0)
在此示例中,您需要final
变量,例如range
。
这是使用外部参数进行过滤的方法,Predicate是一个内部类。
final Range range = new IntRange(0, 3);
Iterable<Team> test = Iterables.filter(teams, new Predicate<Team>() {
public boolean apply(Team p) {
return range.containsInteger(p.getPosition());
}
});