java - 类似 "qualified this"但用于访问嵌套类而不是封闭类的成员

标签 java nested-class

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
        }
    }

}

我希望我想做什么很清楚。有没有办法访问 NestedsomeMethod() 方法?

最佳答案

这是因为 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/

相关文章:

java - 使用多模块项目构建 War

java - Java 找不到 PHP 脚本,但可以在浏览器中运行

java - 使用 netbeans 将函数从 mysql 导出到 excel

c# - 映射到嵌套类

android - 我可以创建内部静态类的实例吗?

java - 将数据从大文件导入二维数组

java - 使 getFilesDir() 不可移动

Java:与接口(interface)、抽象类或内部类的可重用封装?

c++ - 在 C++ 中,如何让(嵌套的)比较仿函数引用封闭类的数据?

c# - 模型内嵌套类属性的 ViewModel 属性