java - Google Guava 和一个我无法弄清楚的错误

标签 java guava

我在尝试编译时遇到此错误:

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

这是 ColumnLikePredicate 类 sig:

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

我做错了什么?

最佳答案

听起来您正在将 Iterator 传递给需要 Iterable 的方法。

Iterator :

An iterator over a collection

Iterable :

Implementing this interface allows an object to be the target of the "foreach" statement.

Iterator 是一个可用于迭代(不同的)集合的对象。 Iterable 是一个可以迭代的对象。

我猜你有某种 collection 并且你正在调用类似 Iterables.filter(collection.iterator(), predicate) 的东西。 Iterables 类希望您传递 Iterable 本身,例如:

Iterables.filter(collection, predicate)

关于java - Google Guava 和一个我无法弄清楚的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3454829/

相关文章:

java - 在 Java 应用程序中与 Ogre(C++) 交互的最佳方式是什么?

java - 为什么 guava joiner 实现一个私有(private)方法 iterable(final Objectfirst,finalObject第二,finalObject[]rest)?

java - Eclipse 中是否有用于为装饰器生成代码的快捷方式?

java - 我们期望 Ignite 何时触发 EVT_CACHE_ENTRY_CREATED 和 EVT_CACHE_OBJECT_PUT 事件

java - 带有先决条件的轻量级 Java 库?

java - Google Guava 供应商示例

java - 如何使用 Guava RateLimiter 以特定速率向 cassandra 发送请求?

java - Guava 可选与 Bean 验证

java - 如何绘制一个圆圈,将其定位在 double 值而不是整数?

java - 文本字段仅接受数字输入