Форум программистов, компьютерный форум 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. Просмотров 381. Ответов 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
Посмотрите здесь:

Listfragment Super - Программирование Android
Добрый день в где тут проблема. public class ItemFragment extends ListFragment { @Override protected void...

Подскажите, пожалуйста, по поводу super - Программирование Android
У меня есть класс A extends Activity, и есть класс B extends A. В классе B я реализую onPause(), а в классе A нет. Код из класса B: ...

Custom view . is missing constructor used by tools - Программирование Android
Здравствуйте! В общем, такая проблема: после того, как в конструкторе класса дописал еще один параметр, кроме Context, появился вот такой...

Для чего нужен Super.onStartCommand - Программирование Android
Здравствуйте. А для чего надо писать так? public int onStartCommand (Intent intent, int flags, int startId) { ...

Что делает строка super.onCreate(savedInstanceState)? - Программирование Android
подскажите, начинающему программисту под android, что делает строка super.onCreate(savedInstanceState); как она работает? заранее...

Ошибка unreachable statement - Программирование Android
Здравствуйте! при создании простого приложения с базой данных возникла ошибка unreachable statement. Используется фрагментация. Ошибка в...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,648
Завершенные тесты: 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(... в конструкторе вызывает ругательство - "не определен дефолтный конструктор"

В делфи вроде небыло таких ограничений. Там часто родитель полностью закрыт(исходники), но разными ухищрениями можно изменить любое свойство предка.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.09.2014, 11:47     Call to super must be first statement in constructor
Еще ссылки по теме:

Передача connection/statement во фрагмент - Программирование Android
В моём приложении в одном активити можно вызвать несколько фрагментов, в каждом из которых запрашивается информация по разным критериям из...

Make sure class name exists, is public, and has an empty constructor that is public - Программирование Android
Здравствуйте, подскажите пожалуйста, в чем ошибка? Я нашел информацию, что тот класс где возникает эта ошибка, лучше сделать static . Вот...

WhatsApp call receiver - Программирование Android
После появления звонков можно ли как определить начало и конец звонка как в gsm?

The release() call is not always reached android - Программирование Android
Здравствуйте! У меня в появляется предупреждение "the release call is not always reached android" при использовании - wl.release();, по...

Ошибка VKSdk.initialize(Context) must be call from Application#onCreate() - Программирование Android
Добрый день. Пытаюсь прикрутить к существующему приложению авторизацию через вк. Следую инструкциям с оф. API. Очевидно, что ошибка...

ошибка call to super must be first statement in constructor - Java
Всем првет. Решил подучить джаву, начал писить примитивные проги, Соответственно детский вопрос - Почему не работает и как починить? ...


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

Или воспользуйтесь поиском по форуму:
YuraAAA
1567 / 1309 / 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
Ответ Создать тему
Опции темы

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