java - 在 Java 中实现 Iterable

标签 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(){
                ...
            } 
};

我想用调用迭代器方法的 A 实例初始化匿名类中的“a”字段。可能吗?

谢谢。

最佳答案

你不需要。

在内部类中可以正常调用外部类的方法。
当你编译它时,编译器会自动生成一个隐藏字段,其中包含对外部类的引用。

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

关于java - 在 Java 中实现 Iterable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2709131/

相关文章:

c++ - 如何检查迭代器指向的内容是否存在

iterator - 如何设置盒装闭包捕获 `self` 的生命周期?

java - 类型不匹配无法从 Boolean 转换为 Int(自定义方法中的数组)

java - 仅调整指定组件大小的面板

java - MongoDB 中的 db.eval() 错误

c++ - 子集 vector

c++ - 遍历除任何 boost::multi_array 的第 d 维以外的所有维度

c++ - 无需访问 vector 即可找到迭代器的末尾

java - hadoop 中未创建 SequenceFile

javascript - 是否可以制作一个接受任何子字符串的正则表达式