Рассмотрим следующие классы:
public class A {
public int a;
public class B {
public int b;
public void foo() {
System.out.println(A.this.a);
System.out.println(this.b);
}
}
}
В foo
я обращаюсь к внешнему экземпляру A
изнутри B
, используя синтаксис A.this
. Это хорошо работает, потому что я пытаюсь получить доступ к внешнему экземпляру A
из «текущего объекта» в B
. Однако что мне делать, если я хочу получить доступ к внешнему объекту A
из переменной типа B
?
public class A {
public int a;
public class B {
public int b;
public void foo(B other) {
System.out.println(other.A.this.a); // <-- This is (obviously) wrong. What SHOULD I do here?
System.out.println(other.b);
}
}
}
Каков правильный синтаксис для доступа к «внешнему» экземпляру из «внутреннего» экземпляра other
в foo
?
Я понимаю, что могу получить доступ к внешней переменной a
, используя просто other.a
. Прошу простить надуманный пример! Я просто не мог придумать лучшего способа спросить, как связаться с other.A.this
.