Подтвердить что ты не робот

Как получить доступ к члену родительского класса из вложенного класса в Java?

Простой вопрос для Java-программиста - я не уверен, возможно ли это напрямую - представьте обходные пути.

Я хочу получить доступ к родительской переменной для инициализации вложенного члена класса, но не знаю синтаксиса Java, чтобы сделать это (если это возможно). Как установить дочерний идентификатор с родительским идентификатором.

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

Помогите с синтаксисом - я не знаю, как его выразить.

4b9b3361

Ответ 1

Вы можете получить к нему доступ, используя его полное имя:

final String id = Parent.this.id;

Ответ 2

Как насчет того, измените ли вы один из идентификаторов String.

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, что не имеет смысла.