给定以下结构的类:
public class Section extends IterableWidgetTemplate<Item>{
private List<WebElement> items1;
// other non iterable methods
private int indexOf(final Item item) {
int i = Iterables.indexOf(this, new Predicate<Item>() {
. . .
});
return i;
}
其中,
Iterables
是番石榴com.google.common.collect.Iterables
,根据其文档,其中包含对Iterable
类型的对象进行操作的静态实用程序方法。现在在我上面描述的类中,将
this
作为迭代传递给private int indexOf()
方法。问题:
我要在
this
对象中迭代什么?我是否认为Iterables
类将使用传递给它的对象中唯一可用的可迭代方法,对吗?因此,在这种情况下,我们在List<WebElement>
对象中具有this
变量。如果1.的答案为“是”,那么
Section
类具有多个可迭代变量会发生什么?其中哪一个将用于迭代? 最佳答案
Iterables.indexOf()
将实现Iterable
接口的对象作为其第一个参数。因此,Iterables.indexOf()
迭代的对象由作为参数传入的对象定义,在您的示例中为Section
类。但是,它没有使用变量-它将在Iterable.iterator()
对象上调用Section
方法。不可能有多个方法中的一种,所以在任何情况下都不会混淆Iterables.indexOf()
将要迭代的内容。
关于java - 使用Guava Iterables时将使用什么Iterable,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35767504/