ArrayList问题
ArrayList.this.elementData
ArrayList的源码中,有一个实现了Iterator接口的内部类Itr,其中有两个elementData变量,一个是内部类的属性,一个是外部类的,
那么外部类的就必须标识为ArrayList.this.elemtData
注意,不是this.elementData,因为外部类的对象是不能调用内部类的,所以只能用类名.this来区别内部类和外部类的属性。
//内部类
private class Itr implements Iterator<E> {
transient Object[] elementData;
@SuppressWarnings("unchecked")
public E next() {
//同名变量
Object[] elementData = ArrayList.this.elementData;
}
}
转自https://blog.csdn.net/jiachunchun/article/details/90235767
。。。
赞 (0)