Re: Получить доступ к this перед вызовом super в конструктор
От: · Великобритания  
Дата: 18.07.19 09:53
Оценка: 19 (2) +1
Здравствуйте, vsb, Вы писали:

vsb>Появилась необходимость получить доступ к this перед вызовом super в конструкторе.

Ну, понятно, нельзя. this ещё как бы не существует до вызова super, т.к. не сконструирован и вообще в хз каком состоянии.
Ты пытаешься сделать циклическую зависимость между двумя конструкторами — для конструирования X, нужен Y, а чтобы сконструировать Y нужен X.
Ну... э... не делай так. Надо:
— подумать хорошенько с какого это перепугу renderer вообще должен зависеть от поля которое он рендерит?
— ввести третий класс Z от которого X и Y будут зависеть.
DictAutoCompleteTextField(String id, String dictName, IModel<Dict> model, Zzz zzz) {
    super(id, model, Dict.class, new AutoCompleteRenderer(zzz), newAutoCompleteSettings());
    this.zzz = zzz;
}
// потом можно и ещё конструктор добавить:
DictAutoCompleteTextField(String id, String dictName, IModel<Dict> model) {
    this(id, dictName, model, new Zzz());
}
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Отредактировано 18.07.2019 9:53 · . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.