38

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

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

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

    // ugly clone
    String shadow = id;

    class Child {
        final String id = shadow;
    }
}

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

4

2 回答 2

88

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

final String id = Parent.this.id;
于 2013-02-10T17:23:33.967 回答
-6

如果您更改其中一个字符串 id 怎么样。

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

  class Child {
    // it is invalid since scope hide parent id?
    // Instead of using id use ID
    final String ID = id;
  }
}

这样你就不会有字符串 id = id,这是没有意义的。

于 2015-10-04T09:33:45.823 回答