How to refer to Enclosing class from Inner class?

I am extending ArrayList to create a custom ArrayList that can be modified using normal ArrayList methods while iterating over it. For this I am also creating an Iterator.

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
}
}

During my hasNext() and next() methods, I need to make sure the list is not modified (it can be modified at any other time). Hence I need to refer to my enclosing type in my synchronized() block.

Answers


EnclosingType.this. So in your case, it would be SynchronizedList.this.


Need Your Help

Why shouldn't I use "Hungarian Notation"?

language-agnostic naming-conventions hungarian-notation

I know what Hungarian refers to - giving information about a variable, parameter, or type as a prefix to its name. Everyone seems to be rabidly against it, even though in some cases it seems to be ...

Parsing returned HTML from jQuery AJAX request

javascript jquery html ajax

What I'm trying to do seems simple: get an HTML page through $.ajax() and pull out a value from it.