Я расширяю ArrayList, чтобы создать пользовательский ArrayList, который может быть изменен с использованием обычных методов ArrayList во время итерации по нему. Для этого я также создаю Итератор.Как обратиться к классу Enclosing из класса Inner?
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() и последующие() методы, мне нужно, чтобы убедиться, что список не изменяется (может быть изменено в любое другое время). Поэтому мне нужно ссылаться на мой закрытый тип в моем синхронизированном() блоке.
Возможный дубликат [Доступ к внешнему классу этого экземпляра] (http://stackoverflow.com/questions/1721608/access-outer-class-this-instance) и [Получение объекта внешнего класса из внутреннего объекта класса ] (http://stackoverflow.com/questions/1816458/getting-hold-of-the-outer-class-object-from-the-inner-class-object) –