我不太清楚在这个例子中如何使用关键字this
。
private void checkForComodification() {
// The this I'm concerned about is the first one
if (CyclicArrayList.this.modCount != this.modCount)
throw new ConcurrentModificationException();
}
答案 0 :(得分:5)
你有时需要内部课程。
this
指向内部类实例本身。
MyOuterClass.this
指向包含的类实例。
在您的情况下,这是必要的,因为这两个类都有modCount
属性(外部类CyclicArrayList
中的属性在此处被遮蔽)。
答案 1 :(得分:3)
它用于你想在"外部"中使用属性或方法的内部类。范围与当前类中的范围相同。
默认情况下,这个' keyword是指当前的类范围,如果没有此功能,您将无法访问具有相同名称的外部字段和方法。
public class Outer {
private String test = "outer;
private class Inner {
private String test = "inner";
public void foo() {
System.out.println(this.test); // "inner"
System.out.println(Outer.this.test); // "outer"
}
}
}