Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
#1

Call to super must be first statement in constructor - Android

07.09.2014, 10:49. Просмотров 372. Ответов 3
Метки нет (Все метки)

Выскакивает такая ошибка!
Можно ли ее обойти? Зачем вообще нужна эта блокировка?

Ситуация:

Есть предок, который в конструкторе имеет параметр - SQL строку.
Хочу сделать наследника, в котором перед началом конструктора должен вычислить эту строку формулой.

Конкретно в этом случае могу конечно задать эту строку после конструктора ("исправив" пустышку), но это уже небольшое извращение. Повезло что конструктор простой, но если бы в нем была математика первичной обработки этой строки... Пришлось бы сильно менять предка...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.09.2014, 10:49     Call to super must be first statement in constructor
Посмотрите здесь:

ошибка call to super must be first statement in constructor Java
Android Что делает строка super.onCreate(savedInstanceState)?
Android Custom view . is missing constructor used by tools
Передача connection/statement во фрагмент Android
Android The release() call is not always reached android
Make sure class name exists, is public, and has an empty constructor that is public Android
WhatsApp call receiver Android
Подскажите, пожалуйста, по поводу super Android
Android Listfragment Super
Для чего нужен Super.onStartCommand Android
Android Ошибка VKSdk.initialize(Context) must be call from Application#onCreate()
Ошибка unreachable statement Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Spelcrawler
523 / 493 / 111
Регистрация: 12.03.2014
Сообщений: 1,646
Завершенные тесты: 1
07.09.2014, 11:12     Call to super must be first statement in constructor #2
Суперкласс(метод) всегда либо вызывать первой строкой, либо не вызывать совсем. А потом что-то переопределить у наследника вполне правильно т.к. иначе никак. Посмотрите исходники хотя бы примеров с developer.android.com, быстрее чем читать книги, но основы поймете)
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
07.09.2014, 11:35  [ТС]     Call to super must be first statement in constructor #3
Понятно... Жаль! Странное ограничение... Это ведь просто метод родителя. По логике его можно было бы вызывать откуда угодно, хоть из любого другого метода...

Кстати попытка заремарить super(... в конструкторе вызывает ругательство - "не определен дефолтный конструктор"

В делфи вроде небыло таких ограничений. Там часто родитель полностью закрыт(исходники), но разными ухищрениями можно изменить любое свойство предка.
YuraAAA
1564 / 1306 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
07.09.2014, 11:47     Call to super must be first statement in constructor #4
Tester64,
Цитата Сообщение от Tester64 Посмотреть сообщение
Это ведь просто метод родителя
не совсем. Это конструктор. Чтобы создать экземпляр класса, java должна сконструировать суперкласс. Если у него есть параметры, то Вы его обязаны вызвать явно с помощью super.
Yandex
Объявления
07.09.2014, 11:47     Call to super must be first statement in constructor
Ответ Создать тему
Опции темы

Текущее время: 12:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru