Информация об изменениях

Сообщение Re[4]: Получить доступ к this перед вызовом super в конструк от 20.07.2019 10:59

Изменено 20.07.2019 11:00 vsb

Re[4]: Получить доступ к this перед вызовом super в конструкторе
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Но было бы странным дать разрешение на введение до super кода, который не может обращаться к полям класса.


И что же в этом странного? Это прекрасно решило бы мою проблему. Даже две проблемы. Вторая не такая существенная, но тоже неприятная. Видно её по названию newAutoCompleteSettings() под которым скрывается код инициализации настроек.

Т.е. код типа

DictAutoCompleteTextField(String id, String dictName, IModel<Dict> model) {
    AutoCompleteSettings settings = new AutoCompleteSettings();
    settings.setSetting1("value1");
    super(settings);
}


я написать не могу, вынужден городить неуместный статический метод. Ну ладно, это, как я уже написал, проблема несущественная, хотя я бы предпочёл писать всю логику инициализации в одном месте.
Re[4]: Получить доступ к this перед вызовом super в конструк
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Но было бы странным дать разрешение на введение до super кода, который не может обращаться к полям класса.


И что же в этом странного? Это прекрасно решило бы мою проблему. Даже две проблемы. Вторая не такая существенная, но тоже неприятная. Видно её по названию newAutoCompleteSettings() под которым скрывается код инициализации настроек.

Т.е. код типа

DictAutoCompleteTextField(String id, String dictName, IModel<Dict> model) {
    AutoCompleteSettings settings = new AutoCompleteSettings();
    settings.setSetting1("value1");
    super(settings);
}


я написать не могу, вынужден городить неуместный статический метод. Ну ладно, это, как я уже написал, проблема несущественная, хотя я бы предпочёл писать всю логику инициализации в одном месте.

Причём компилятор вполне умеет отделять такой код. Нельзя написать super(this.field), т.к. идёт обращение к this до вызова super.