Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从Java中的嵌套类访问父类成员?_Java - Fatal编程技术网

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

如何从Java中的嵌套类访问父类成员?,java,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;

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

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

您可以使用它的完全限定名访问它:

final String id = Parent.this.id;

如果您更改其中一个字符串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,这是没有意义的。

我不确定,你的字段是用一个方法分配的?我会问你其他问题,你猜到了,所以应该给你点分数:)它总是
classnameofOutClass。This.somememberormethodofourter
-结尾是带还是不带()。说到这里,我称之为外部类和内部类。顺便说一句。不一样,我会发布一些其他问题,因为我问了一些关于想要以外的问题,得到了有效的答案,但有点不同。这不是一个有效的解决方案。OP希望使用相同的变量名。你的建议已经在OP中得到了证实。