Iterables.transform 没有遍历我的列表
Iterables.transform is not iterating through my List
analyticsDatabases 的类型为 -
private final Iterable<Database> analyticsDatabases;
我在一个方法中使用了下面的代码片段,并且我在 analyticsDatabases 列表中有一个元素。当我执行 for 循环时,一切正常,但我很好奇为什么我的 Iterables.transform 不起作用。
Iterable<Iterable<ObjectId>> finalR = Iterables.transform(analyticsDatabases, new Function<Database, Iterable<ObjectId>>() {
@Nullable
@Override
public Iterable<ObjectId> apply(@Nullable Database database) {
if (database != null) {
return database.deleteItemsById(filterIds, storableType, writeAckStrategy);
}
`enter code here`
return null;
}
});
Iterables
的 javadoc 指出
Performance notes: Unless otherwise noted, all of the iterables
produced in this class are lazy, which means that their iterators only
advance the backing iteration when absolutely necessary.
换句话说,transform
不应用给定的 Function
。它 returns 一个 Iterable
将在请求元素时应用 Function
。
analyticsDatabases 的类型为 -
private final Iterable<Database> analyticsDatabases;
我在一个方法中使用了下面的代码片段,并且我在 analyticsDatabases 列表中有一个元素。当我执行 for 循环时,一切正常,但我很好奇为什么我的 Iterables.transform 不起作用。
Iterable<Iterable<ObjectId>> finalR = Iterables.transform(analyticsDatabases, new Function<Database, Iterable<ObjectId>>() {
@Nullable
@Override
public Iterable<ObjectId> apply(@Nullable Database database) {
if (database != null) {
return database.deleteItemsById(filterIds, storableType, writeAckStrategy);
}
`enter code here`
return null;
}
});
Iterables
的 javadoc 指出
Performance notes: Unless otherwise noted, all of the iterables produced in this class are lazy, which means that their iterators only advance the backing iteration when absolutely necessary.
换句话说,transform
不应用给定的 Function
。它 returns 一个 Iterable
将在请求元素时应用 Function
。