/ / Как да се позовем на заграждащия клас от Inner class? - java, class, arraylist, вложени, синхронизирани

Как да се позовем на Присъстващия клас от Вътрешен клас? - java, class, arraylist, вложени, синхронизирани

Разширявам 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 () трябва да се уверя, че списъкът не е модифициран (може да се променя по всяко време). Затова трябва да се позова на моя тип закрепване в моя синхронизиран () блок.

Отговори:

5 за отговор № 1

EnclosingType.this, Така че във вашия случай ще бъде SynchronizedList.this.