Есть ли способ сослаться на нестатическое поле внешнего класса из статического вложенного класса?
Пожалуйста, смотрите мой код ниже:
public class TestComponent {
String value;
public void initialize(String value) {
this.value = value;
}
public static class TestLabel extends GenericForwardComposer {
Label testLabel;
@Override
public void doAfterCompose(Component comp) throws Exception {
super.doAfterCompose(comp);
testLabel.setValue(value);
}
}
}
Этот код выдает ошибку в testLabel.setValue (значение), когда я пытаюсь сделать статическую ссылку на нестатическое поле.Но мне нужно, чтобы значение было нестатичным и все же ссылалось на него в методе статического вложенного класса.Как мне это сделать?
Вы можете заметить, как я создаю экземпляр TestComponent.java здесь: http://top.cs.vt.edu/~vsony7/patches/gfc.patch
Идея состоит в том, чтобы динамически создать две метки с двумя разными значениями «Метка 1» и «Метка 2» и добавить ихк двум различным компонентам, т.е. vlayout1 и vlayout2.Но когда я запускаю этот код, метка прикрепляется к каждому из макетов, но значение обеих меток равно «Метка 2».Вы можете проверить это по адресу:
Проблема в том, что два окна из testlabel.zul, созданные двумя вызовами IncludeBuilder, совместно используют статический класс TestLabel.После super.doAfterCompoe () значение тестовой метки устанавливается в «Метка 2» в обоих вызовах.
Я использую Zk Framework, и у ZK нет включающего экземпляра, поэтому внутренний вложенный класс TestLabel должен быть статическим.
Спасибо, Sony