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