java - 如何从内部类引用封闭类?

标签 java class arraylist nested synchronized

我正在扩展 ArrayList 以创建一个自定义 ArrayList,可以在迭代它时使用普通 ArrayList 方法对其进行修改。为此,我还创建了一个迭代器。

public class SynchronizedList<E> extends ArrayList<E>
{
    // Fields here

    //Constructors and methods here

public class SynchronizedListIterator<E> implements Iterator<E>
{
    public int index;
    private E current;

    public boolean hasNext()
    {
        synchronized (/* reference to enclosing List object */) {
                    //code goes here
        }
        return false;
    }

    //more methods here
}
}

在我的 hasNext() 和 next() 方法中,我需要确保列表没有被修改(它可以在任何其他时间修改)。因此,我需要在我的 synchronized() block 中引用我的封闭类型。

最佳答案

EnclosingType.this。因此,在您的情况下,它将是 SynchronizedList.this

关于java - 如何从内部类引用封闭类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10059951/

相关文章:

java - 如何获取文件的引用

Python父类访问子私有(private)变量

java - Collections.sort 带有 2 个数组

java - 如何在java中将一个列表类型转换为另一个列表?

java - 如何根据Java中对象的一个​​成员变量从一个数组列表中删除存在于另一个数组列表中的对象?

java - 如何控制 Wicket 表单中的 JPA 持久性?

java - 当编辑文本的长度增加时,scrollView之外的listView项目在android中消失?

java - 如何解决 Java 中的 NullPointerException?

r - 将字符转换为日期的函数

C# 设置的替代方法是什么