Java匿名內部類中this的小知識(待補充完整)
阿新 • • 發佈:2019-02-09
今日在看到Enumeration 藉口的原始碼時發現,Enumeration 介面的asIterator 方法返回了一個迭代器,並使用匿名內部類(實現介面的匿名內部類)。對迭代器中的方法進行了實現
default Iterator<E> asIterator() {
return new Iterator<>() {
@Override public boolean hasNext() {
return hasMoreElements();
}
@Override public E next() {
return nextElement();
}
};
}
使用Enumeration的方法對迭代器的方法進行了重寫。這裡在匿名內部類中使用了外部類的方法。最下我認為應該是使用 外部類名.this.方法名 的方式進行呼叫, 因為只寫方法名,如果內部類也有相同的方法,則會呼叫內部類的方法,如果內部類沒有相應的方法,則會呼叫外部類的方法,應該是編譯器進行了相應的工作。