1. 程式人生 > >Java匿名內部類中this的小知識(待補充完整)

Java匿名內部類中this的小知識(待補充完整)

今日在看到Enumeration 藉口的原始碼時發現,Enumeration 介面的asIterator 方法返回了一個迭代器,並使用匿名內部類(實現介面的匿名內部類)。對迭代器中的方法進行了實現

    default Iterator<E> asIterator() {
        return new Iterator<>() {
            @Override public boolean hasNext() {
                return hasMoreElements();
            }
            @Override
public E next() { return nextElement(); } }; }

使用Enumeration的方法對迭代器的方法進行了重寫。這裡在匿名內部類中使用了外部類的方法。最下我認為應該是使用 外部類名.this.方法名 的方式進行呼叫, 因為只寫方法名,如果內部類也有相同的方法,則會呼叫內部類的方法,如果內部類沒有相應的方法,則會呼叫外部類的方法,應該是編譯器進行了相應的工作。