Разширявам 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 за отговор № 1EnclosingType.this
, Така че във вашия случай ще бъде SynchronizedList.this
.