我有以下代码
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(){
...
}
};
我想用调用迭代器方法的 A 实例初始化匿名类中的“a”字段。可能吗?
谢谢。
最佳答案
你不需要。
在内部类中可以正常调用外部类的方法。
当你编译它时,编译器会自动生成一个隐藏字段,其中包含对外部类的引用。
要自己引用这个变量,可以写成A.this
。 (A.this
是编译器生成的字段,相当于您的 a
字段)
关于java - 在 Java 中实现 Iterable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2709131/