public class TopLevel {
private void someMethod() {
Nested.this.someMethod(); // compile error
}
private class Nested {
private void someMethod() {
TopLevel.this.someMethod(); // so-called "qualified this": OK
}
}
}
我希望我想做什么很清楚。有没有办法访问 Nested
的 someMethod()
方法?
最佳答案
这是因为 Nested 类
是 inner class因此具有对包含它的 TopLevel
实例的隐式引用。
您需要 Nested
类的实例来访问someMethod
private void someMethod() {
new Nested().someMethod();
}
因为您的 Nested
类不是 static
,它与 TopLevel
的实例绑定(bind) - 您可以使用 TopLevel 访问此实例.这个
.
反之则不然,没有与 TopLevel
绑定(bind)的 Nested
隐式实例。您需要显式创建 Nested
实例才能访问其非static
成员。
关于java - 类似 "qualified this"但用于访问嵌套类而不是封闭类的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19136011/