Здравствуйте, vsb, Вы писали:
vsb>Но по какому-то глупому ограничению я не то, что получить доступ к this до вызова super не могу, я вообще ничего там делать не могу.
Оно совсем не глупое. До вызова super не отработал конструктор базового класса. Если , например, поля производного класса определяются в конструкторе через поля базового, то нетрудно себе представить, чем это может закончиться.
Запрет на доступ к this на первый взгляд менее логичен, так как this — это ссылка на объект и она изменена быть не может внутри вызова super(). Так что взять ее вроде как безопасно, и я пока не вижу, к каким проблемам это могло бы привести. Но что ты сможешь сделать, взяв ее ? Присваивать ее полям нельзя — еще не сконструированы поля базового класса, так что см. выше. Передать параметру конструктора ? Чем это будет лучше, чем если сделать это после вызова super ? Завести локальную переменную, как в твоем гипотетическом примере внизу ? Это такой ящик Пандоры открыть, что мало никому не покажется. Кто мне в таком случае запретит передать в new AutoCompleteRenderer() какое-то поле базового класса ?