- 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; } }
ArrayList.this类名.this何意
最新推荐文章于 2022-10-29 18:54:55 发布