谷歌Guava和一个我无法解决的错误

3

在尝试编译时,我遇到了这个错误:

类型Iterables中的方法filter(Iterable<T>, Predicate<? super T>)对于参数(Iterator<PeopleSoftBalance>,ColumnLikePredicate<PeopleSoftBalance>)不适用。

下面是ColumnLikePredicate类的签名:

public class ColumnLikePredicate<T extends RowModel> implements Predicate<T>

我做错了什么?


你可能想要编辑问题,以便每个人都可以看到。请记住这是一个网页,大于号和小于号需要进行转义。 - Romain Hippeau
3个回答

14
听起来你正在将Iterator传递给期望Iterable的方法。 <Iterator>:
迭代集合的迭代器。 <Iterable>:
实现此接口允许对象成为“foreach”语句的目标。 Iterator是一个可用于迭代(不同)集合的对象。Iterable是一个可以被迭代的对象。
我猜想你有一些collection,并且正在调用类似Iterables.filter(collection.iterator(), predicate)的东西。 Iterables类希望你传递Iterable本身,例如:
Iterables.filter(collection, predicate)

3

0

PeopleSoftBalance是否扩展了RowModel?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接