AbstractList源代码中的奇怪代码行

时间:2015-08-22 09:14:39

标签: java iterator this

有人可以解释在this来源中使用AbstractList的方式: AbstractList.this.remove(lastRet);

此行位于remove()内部类的private class Itr implements Iterator<E>方法中。

2 个答案:

答案 0 :(得分:1)

语法ClassName.this适用于嵌套的非静态类。它允许您访问对&#34;拥有的对象的引用。嵌套类,即父对象的this对象。

这是抽象列表中迭代器类的情况:它在其父remove对象上调用AbstractList方法。

答案 1 :(得分:1)

内部类(与静态嵌套类相对)始终与周围类的实例相关联。

由于他们是周围班级的成员,因此他们可以访问其所有成员,私人或公共成员。为了访问周围类的成员,特别是如果成员名称可能不明确,您需要访问&#34; this&#34;周围的类实例。

使用的语法是.this周围类的名称。这正是您在示例中看到的内容。 AbstractList是周围的类,AbstractList.this是与当前Itr实例关联的周围类的实例。

相关问题