简单地说,有可能创建一个类型,在java中,可以传递到冒号后的foreach循环?如果是这样,怎么样?创建一个要在foreach循环中使用的类型。 Java
起初我以为我的foreach只能用于数组,但是后来我注意到List
s可以被迭代。我的问题是,这是解释器自动执行还是可以创建我自己可以使用的类?
简单地说,有可能创建一个类型,在java中,可以传递到冒号后的foreach循环?如果是这样,怎么样?创建一个要在foreach循环中使用的类型。 Java
起初我以为我的foreach只能用于数组,但是后来我注意到List
s可以被迭代。我的问题是,这是解释器自动执行还是可以创建我自己可以使用的类?
是的,只是实现了Iterable
接口。
从http://docs.oracle.com/javase/6/docs/api/java/lang/Iterable.html:
实现此接口允许一个对象是“的foreach”语句的目标。
要拥有此功能,您可以实施Iterable
接口。你需要实现你自己的iterator()
方法。然后,你可以使用foreach循环。
是的。正如它在the Java Language Specification中所述,您需要实施Iterable
interface。如果这样做,则可以在增强型for
循环中使用您的类的实例。
Iterable
是一个非常非常简单的界面:它要求您有一个iterator
方法返回Iterator<T>
instance。