単純に、コロンの後に foreach ループに渡すことができる型を Java で作成することは可能ですか? もしそうなら、どのように?
最初は、foreach は配列に対してしか機能しないと思っていましたが、その後、Lists を反復処理できることに気付きました。私の質問は、これはインタープリターが自動的に行うものですか、それとも使用できる独自のクラスを作成することは可能ですか?
はい、Iterableインターフェースを実装するだけです。
http://docs.oracle.com/javase/6/docs/api/java/lang/Iterable.htmlから:
このインターフェイスを実装すると、オブジェクトを「foreach」ステートメントのターゲットにすることができます。
はい、可能です。インターフェイスを実装する必要があり、拡張ループIterableで使用できます。for
ドキュメントが言うように:
このインターフェイスを実装すると、オブジェクトを「foreach」ステートメントのターゲットにすることができます。
この機能を実現するには、Iterableインターフェイスを実装できます。iterator()独自のメソッドを実装する必要があります。次に、foreach ループを使用できます。
はい。Java 言語仕様にあるように、Iterableインターフェースを実装する必要があります。その場合、クラスのインスタンスを拡張forループで使用できます。
Iterableは非常に単純なインターフェイスです。インスタンスiteratorを返すメソッドが必要です。Iterator<T>