在Java中实现Iterable

Art*_*ium 1 java iterator

我有以下代码

public class A extends Iterable<Integer> {
    ...
    public Iterator<Integer> iterator() {
        return new Iterator<Integer>() {

            A a;

            public boolean hasNext() {
                ...
            }

            public Integer next() {
                ...
            }

            public void remove(){
                ...
            } 
};
Run Code Online (Sandbox Code Playgroud)

我想初始化匿名类中的"a"字段,其中包含调用迭代器方法的A实例.可能吗?

谢谢.

SLa*_*aks 11

你不需要.

您可以通常在内部类中调用外部类的方法.
编译时,编译器将自动生成一个隐藏字段,其中包含对外部类的引用.

要自己引用此变量,您可以编写A.this.(A.this是编译器生成的字段,相当于您的a字段)