![]() |
Модераторы: javastic, AntonSaburov |
![]() ![]() ![]() |
|
Kalisnik |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 21.6.2011 Репутация: нет Всего: нет |
Странное дело... при нажатии на любую кнопку Command получаю исключение вида: TRACE: <at java.lang.NullPointerException: 0>, Exception caught in Display class
|
||||
|
|||||
oxigen |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 12.4.2010 Репутация: 4 Всего: 4 |
В конструктор добавь
|
|||
|
||||
Kalisnik |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 21.6.2011 Репутация: нет Всего: нет |
да... стыдно.
Кстати, мне кажется многие неоправдано боятся использовать статику? Ну вот такой получился у меня финальный вариант версии 0.5 ![]()
Это сообщение отредактировал(а) Kalisnik - 2.3.2012, 20:09 |
||||
|
|||||
oxigen |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 12.4.2010 Репутация: 4 Всего: 4 |
Неправильный вариант получился :(
У вас при каждом нажатии будут создаваться новые "Форма2" и "Форма3". Старт - создали новый Stra("Форма1"). У него поля str2 = null и str3 = null Нажали 2 создали новый Stra("Форма2"). У него поля str2 = null и str3 = null Нажали 3 создали новый Stra("Форма3"). У него поля str2 = null и str3 = null Нажали 2 создали новый Stra("Форма2"). У него поля str2 = null и str3 = null Пройдите дебагером или sysout в конструкторе поставьте - сами увидите. static поля - общие для всех объектов класса, а нестатичные - свои для каждого объекта. А вот "Форма1" создастся один раз и будет работать правильно. Вы ее через статический static Midlet midl получаете.
От метода, судя по названию ожидаю, что он должен возвращать форму. Зачем он делает еще что-то неочевидное? Принимает Displayable просто чтоб положить его в стек. Логичнее будет выглядеть
P.S. Да, излишняя статика это вроде плохо. Правда совершенно не помню, почему :( Вроде там причины не технические, а идеологические. Это сообщение отредактировал(а) oxigen - 2.3.2012, 20:22 |
||||
|
|||||
Kalisnik |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 21.6.2011 Репутация: нет Всего: нет |
Да, забыл здесь static поставить
Это и называется утечкой памяти? Я создавал каждый раз новые объекты, тем самым занимая память? Пишу в NetBeans. Отладчиком пока не научился пользоваться - это ведь и есть дебагер? Метод тоже исправил. Я его у Вас же и скопипастил. Потом баловался с ним, в итоге он был скопирован из класса Midlet целиком, и не прошел проверку на актуальность. ![]() В остальном нареканий нет? Это сообщение отредактировал(а) Kalisnik - 2.3.2012, 22:15 |
|||
|
||||
oxigen |
|
||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 12.4.2010 Репутация: 4 Всего: 4 |
private static Stra str2, str3;
Тогда возникает один вопрос, Вот есть 3 формы. Абсолютно равноправные и равноценные. Но str хранится в Midlet а str2 и str3 в Stra. Явно просится их в одном месте хранить и однотипно пользоваться. Если в Stra, то
Это и называется утечкой памяти? Я создавал каждый раз новые объекты, тем самым занимая память? Дело не столько в расходовании памяти. Если есть необходимость создавать каждый раз именно новые формы - то создавайте. Тут скорее поведение будет отличаться. Если формы статические, то вызываете
А если формы будут каждый раз через new создаваться, то
Так что все зависит от того, какое поведение Вам нужно. Ага. Отладчик это дебагер. По NetBeans ничего подсказать не смогу. Никогда не пользовался. Это сообщение отредактировал(а) oxigen - 3.3.2012, 11:41 |
||||||
|
|||||||
Kalisnik |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 21.6.2011 Репутация: нет Всего: нет |
Явно просится их в одном месте хранить и однотипно пользоваться. - заметано.
Дело не столько в расходовании памяти. Если я не ошибаюсь, Java имеет механизм сборки мусора, так что, в принципе, что бы произошла утечка памяти нужно постараться? ![]() |
|||
|
||||
Kalisnik |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 21.6.2011 Репутация: нет Всего: нет |
oxigen, а по мимо MVC какие еще модели есть? Мне как-то сложно представить приложение без единого, общего контроллера... пусть даже оно максимально инкапсулировано. Ведь в любой стране должен быть свой президент или король. У высокоразвитых организмов - голова. Иначе, хаос. Как без контроллера?
|
|||
|
||||
oxigen |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 12.4.2010 Репутация: 4 Всего: 4 |
С государством хороший пример.
Чем больше аспектов контролирует государство - тем больше и сложнее его бюрократический аппарат. Вы идете в магазин - покупаете хлеб. Напрямую взаимодействуете с продавцом. Просто. А если Вы даете деньги государству, а оно дает их продавцу? То государство должно иметь данные обо всех продавцах, обо всех товарах, иметь возможность передать деньги от каждого продавца к каждому покупателю... Возникающие накладные расходы представляете. А в для программы президент/король - это программист. Именно вы создаете инструкции для поведения на все случаи жизни. И вопрос в том - дать эти инструкции сразу конкретным исполнителям или ввести для них дополнительный контроллер. Мне больше нравится первый подход - из-за наглядности. Смотришь на отдельный класс и видишь, что он будет делать в конкретных случаях. |
|||
|
||||
![]() ![]() ![]() |
FAQ раздела лежит здесь! |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java ME (J2ME) | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |