Ответ 1
Вы можете получить к нему доступ, используя его полное имя:
final String id = Parent.this.id;
Простой вопрос для 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;
}
}
Помогите с синтаксисом - я не знаю, как его выразить.
Вы можете получить к нему доступ, используя его полное имя:
final String id = Parent.this.id;
Как насчет того, измените ли вы один из идентификаторов 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, что не имеет смысла.