如何从Java中的嵌套类访问父类成员?

Cha*_*eon 28 java

Java程序员的简单问题 - 我不确定是否可以直接 - 请提供解决方法.

我想访问父变量来初始化嵌套的类成员,但不知道要执行它的Java语法(如果可能).如何使用父ID设置子ID.

public class Parent {
    final String id = "parent";

    class Child {
        // it is invalid since scope hide parent id?
        final String id = id;
    }
}
Run Code Online (Sandbox Code Playgroud)

我发现的最佳解决方案非常难看,请看:

public class Parent {
    final String id = "parent";

    // ugly clone
    String shadow = id;

    class Child {
        final String id = shadow;
    }
}
Run Code Online (Sandbox Code Playgroud)

请帮助语法 - 我不知道如何表达它.

ass*_*ias 62

您可以使用其完全限定名称来访问它:

final String id = Parent.this.id;
Run Code Online (Sandbox Code Playgroud)

  • 它总是`ClassNameOfOuterClass.this.someMemberOrMethodOfOuter` - 最后有或没有().说到哪 - 我称之为外层和内层. (9认同)