3

是否可以在java中创建一个类型,可以在冒号之后传递到foreach循环中?如果是这样,怎么办?

起初我以为 foreach 只适用于数组,但后来我注意到Lists 可以迭代。那么我的问题是,这是解释器自动执行的操作,还是可以创建我自己的可以使用的类?

4

4 回答 4

6

是的,只需实现Iterable接口。

来自http://docs.oracle.com/javase/6/docs/api/java/lang/Iterable.html

实现这个接口允许一个对象成为“foreach”语句的目标。

于 2013-07-25T21:22:22.200 回答
2

是的,有可能。您必须实现该Iterable接口,并且可以在增强for循环中使用它。

正如文档所说:

实现这个接口允许一个对象成为“foreach”语句的目标。

于 2013-07-25T21:22:30.630 回答
1

要拥有此功能,您可以实现Iterable接口。您需要实现自己的iterator()方法。然后,您可以使用 foreach 循环。

于 2013-07-25T21:22:53.383 回答
1

是的。正如Java 语言规范中所说,您需要实现Iterable接口。如果这样做,您的类的实例可以在增强的for循环中使用。

Iterable是一个非常非常简单的接口:它要求您有一个iterator返回Iterator<T>实例的方法。

于 2013-07-25T21:23:31.590 回答