Сообщение Re: Получить доступ к this перед вызовом super в конструктор от 18.07.2019 9:53
Изменено 18.07.2019 9:53 ·
Re: Получить доступ к this перед вызовом super в конструкторе
Здравствуйте, vsb, Вы писали:
vsb>Появилась необходимость получить доступ к this перед вызовом super в конструкторе.
Ну, понятно, нельзя. this ещё как бы не существует до вызова super, т.к. не сконструирован и вообще в хз каком состоянии.
Ты пытаешься сделать циклическую зависимость между двумя конструкторами — для конструирования X, нужен Y, а чтобы сконструировать Y нужен X.
Ну... э... не делай так. Надо:
— подумать хорошенько с какого это перепугу renderer вообще должен зависеть от поля которое он рендерит?
— ввести третий класс Z от которого X и Y будут зависеть.
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());
}Re: Получить доступ к this перед вызовом super в конструктор
Здравствуйте, vsb, Вы писали:
vsb>Появилась необходимость получить доступ к this перед вызовом super в конструкторе.
Ну, понятно, нельзя. this ещё как бы не существует до вызова super, т.к. не сконструирован и вообще в хз каком состоянии.
Ты пытаешься сделать циклическую зависимость между двумя конструкторами — для конструирования X, нужен Y, а чтобы сконструировать Y нужен X.
Ну... э... не делай так. Надо:
— подумать хорошенько с какого это перепугу renderer вообще должен зависеть от поля которое он рендерит?
— ввести третий класс Z от которого X и Y будут зависеть.
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());
}