Учитывая, что у меня есть база класса, которая имеет один конструктор аргумента с объектом Textbox в качестве аргумента. Если у меня есть класс простой из следующей формы: < /p>
public class Simple extends Base {
public Simple(){
TextBox t = new TextBox();
super(t);
//wouldn't it be nice if I could do things with t down here?
}
}
< /code>
Я получу ошибку, сообщая мне, что вызов Super должен быть первым вызовом в конструкторе. Однако, как ни странно, я могу сделать это. < /P>
public class Simple extends Base {
public Simple(){
super(new TextBox());
}
}
< /code>
Почему это разрешено, но первый пример не? Я могу понять, что нужно сначала настроить подкласс и, возможно, не позволить переменным объекта быть созданными до того, как будет вызван супер-конструктор. Но t - это явно переменная метода (локальная), так почему бы не разрешить это? < /P>
Есть ли способ обойти это ограничение? Есть ли хороший и безопасный способ удерживать переменные для вещей, которые вы могли бы построить, прежде чем называть супер, но после того, как вы ввели конструктор? Или, более общее, позволяя сделать вычисление до того, как на самом деле будет вызван супер, но внутри конструктора?
Подробнее здесь: https://stackoverflow.com/questions/230 ... onstructor
Можно ли сделать вычисление до Super () в конструкторе? ⇐ JAVA
Программисты JAVA общаются здесь
-
Anonymous
1759311639
Anonymous
Учитывая, что у меня есть база класса, которая имеет один конструктор аргумента с объектом Textbox в качестве аргумента. Если у меня есть класс простой из следующей формы: < /p>
public class Simple extends Base {
public Simple(){
TextBox t = new TextBox();
super(t);
//wouldn't it be nice if I could do things with t down here?
}
}
< /code>
Я получу ошибку, сообщая мне, что вызов Super должен быть первым вызовом в конструкторе. Однако, как ни странно, я могу сделать это. < /P>
public class Simple extends Base {
public Simple(){
super(new TextBox());
}
}
< /code>
Почему это разрешено, но первый пример не? Я могу понять, что нужно сначала настроить подкласс и, возможно, не позволить переменным объекта быть созданными до того, как будет вызван супер-конструктор. Но t - это явно переменная метода (локальная), так почему бы не разрешить это? < /P>
Есть ли способ обойти это ограничение? Есть ли хороший и безопасный способ удерживать переменные для вещей, которые вы могли бы построить, прежде чем называть супер, но после того, как вы ввели конструктор? Или, более общее, позволяя сделать вычисление до того, как на самом деле будет вызван супер, но внутри конструктора?
Подробнее здесь: [url]https://stackoverflow.com/questions/2303604/is-it-possible-to-do-computation-before-super-in-the-constructor[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия