Вызов переменной - Страница 2 - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Сообщество Календарь
Вернуться   Форум администраторов игровых серверов > Полезное / Common > Программирование / Programming > Java

Java В данном форуме вы сможете найти много полезной информации по платформе Java. Подробные статьи, исходные коды и конечно учебники как для новичков так и профессиональных Java разработчиков вы найдёте здесь. Если у вас есть вопрос или хотите поделится своими наработками, пожалуйста, делайте это в этой теме.

Ответ
Опции темы
Непрочитано 23.04.2012, 22:17   #11
Аватар для shocked
Пользователь

По умолчанию Re: Вызов переменной

В примере выше был примитивный тип (int bar), как он может бросить NPE ?
PHP код:
class HlorkaGood {
 public static 
Object HLORA_IS_MY_FRIEND;
 ...
}

// Обращаемся к переменной
...
 
Object test HlorkaGood.HLORA_IS_MY_FRIEND;
...
// Будет исключение NullPointerException 
тут точно будет NPE ?) По-моему там null присвоится просто
shocked вне форума Ответить с цитированием
Непрочитано 23.04.2012, 22:26   #12
Аватар для Yorie

По умолчанию Re: Вызов переменной

Хлорка:
Свернуть ↑Развернуть ↓


Я извиняюсь, конечно, но какой-то несвязный бред.
1. Если переменная не константа (в случае Java, не static final), то это совершенно не означает, что ее обязательно инициализировать в месте объявления;
2. Java не позволит Вам использовать не инициализированную хоть чем-нибудь переменную. Соответственно, NPE актуален, когда переменная равна null - это разные вещи;
3. static != const вообще ни разу, почитайте что-нибудь про ООП;
4. Откуда Вы вообще взяли понятие "полустатичная переменная"? Переменная может быть static или non-static, другого не дано, Вы явно не понимаете смысл статических свойств и методов классов;
5. Для хранения загружаемых конфигов имеет смысл использовать final static, а не просто static-переменные. Применение static-переменных оправдано, потому что при создании экзмепляров классов, такие переменные не нуждаются в копировании для каждого объекта, а хранятся дружно в одном месте.
6. Чтобы использовать Reflection не нужно быть безумно-профессиональным, Reflection + Annotations могут дать довольно хороший буст в понимании написанного кода.
__________________
// aka Deft
Yorie вне форума Ответить с цитированием
Непрочитано 23.04.2012, 22:46   #13
Аватар для Хлорка
Пользователь

Post Re: Вызов переменной

Цитата:
Сообщение от Yorie Посмотреть сообщение

Я извиняюсь, конечно, но какой-то несвязный бред.
1. Если переменная не константа (в случае Java, не final), то это совершенно не означает, что ее обязательно инициализировать в месте объявления;
Ты читать научись где я такое писал? Я писал:
Цитата:
Сообщение от Хлорка Посмотреть сообщение
Поэтому что не инициализировали. Если переменная не константа, то должна иметь дефолтовое значени или полуконстанта (файл конфигурации), то...
На момент вызова должна иметь значение, ты смотри что написано в блоке до того как читать сообщение и тролить!

Цитата:
Сообщение от Yorie Посмотреть сообщение
2. Java не позволит Вам использовать не инициализированную хоть чем-нибудь переменную. Соответственно, NPE актуален, когда переменная равна null - это разные вещи;
Неинициализированная переменная и есть Null и вызовется тоже самое исключение. Иди отсюда!

Цитата:
Сообщение от Yorie Посмотреть сообщение
3. static != const вообще ни разу, почитайте что-нибудь про ООП;
4. Откуда Вы вообще взяли понятие "полустатичная переменная"? Переменная может быть static или non-static, другого не дано, Вы явно не понимаете смысл статических свойств и методов классов;
А я разве такое писал? Полустатическая, это я ошибся, я хотел сказать полуконстанта - это мой термин для переменных которые технически не являются константами, но программа их не меняет. А вы явно хотите выставить меня идиотом, при том что сами даже не поняли то что я написал. Непоняли небось потому что и не знали а ха ха.

Цитата:
Сообщение от Yorie Посмотреть сообщение
5. Для хранения загружаемых конфигов имеет смысл использовать final static, а не просто static-переменные. Применение static-переменных оправдано, потому что при создании экзмепляров классов, такие переменные не нуждаются в копировании для каждого объекта, а хранятся дружно в одно месте.
Вот это ты мне открытие сделал, можешь идти в школу работать. А по поводу final вы сначала лично попробуйте их в конфигах использовать, а еще лучше почитайте мой предыдущий пост о чем там вообще шла речь.

Цитата:
Сообщение от Yorie Посмотреть сообщение
// Будет исключение NullPointerException[/PHP]
тут точно будет NPE ?) По-моему там null присвоится просто
Да тут пример плохой. Нужно из Object попробовать что-то извлечь, тогда будить исключение.
Хлорка вне форума Отправить сообщение для Хлорка с помощью ICQ Ответить с цитированием
Непрочитано 23.04.2012, 23:19   #14
Аватар для Yorie

По умолчанию Re: Вызов переменной

Цитата:
Ты читать научись
Цитата:
Иди отсюда!
Мб не будем переходить на личности?
Цитата:
Неинициализированная переменная и есть Null и вызовется тоже самое исключение
Код:
int t;
Math.abs(t);
-> "Variable t might not have been initialized". C++ имеет абсолютно такую же логику для подобных ситуаций, такой код просто-напросто не скомпилится, вот и все.
"Никогда не видел такой ошибки, потому что везде пихаю foo = null" и "такой ошибки в природе не существует" - разные вещи.
Дальше комментировать не вижу смысла.
__________________
// aka Deft
Yorie вне форума Ответить с цитированием
Сказали спасибо:
Непрочитано 23.04.2012, 23:40   #15
Аватар для bloodshed
Герой

По умолчанию Re: Вызов переменной

оффтоп:
Свернуть ↑Развернуть ↓
__________________
bloodshed вне форума Отправить сообщение для bloodshed с помощью ICQ Отправить сообщение для bloodshed с помощью Skype™ Ответить с цитированием
Сказали спасибо:
Непрочитано 08.05.2012, 08:24   #16
Пользователь

По умолчанию Re: Вызов переменной

оуч... читай про классы,структуры...
приват для того и приват, что может работать только в своём круге) и делать из неё public - опасно
если можно будет к ней обратиться, то соответственно её можно будет изменить...
Jokko вне форума Ответить с цитированием
Непрочитано 08.05.2012, 11:54   #17
Аватар для Visor

Lightbulb Re: Вызов переменной

Цитата:
Сообщение от finfan Посмотреть сообщение
Как правильно вызвать любую переменну?
Вроде бы методы получается вызывать, а переменные - печаль...
мои попытки вызвать переменную из _power(getPower()) из L2Skill не увенчались успехом, 100% я д*лбаеб, но вопрос мучает, до 5 утра просидел, то одна ошибка, т овторая, скачал книги, сел читать, в 8 утра уже закончил с Ширлтом и продолжил по Эккелю, но скорее всего я что-то упустил!
Подскажите пожалуйста

Только не нужно кидаться тапками
Вы видимо пытались вызвать из класса L2Skill метод, типа L2Skill.getPower().
Так делать нельзя - нужно вызывать из объекта класса, а не из самого класса - этот параметр не статический.
Нужно сначала взять скил, для примера
L2Skill skill =SkillTable.getInstance.getInfo(37,1);//Triple Slash
а потом уже посмотреть его силу
int power = skill.getPower();
__________________
L2Emu Enterprise Server
Visor вне форума Отправить сообщение для Visor с помощью ICQ Отправить сообщение для Visor с помощью Skype™ Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вызов классмастера из другой html mego4el Lineage II 7 16.08.2011 16:51


© 2007–2024 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 06:57. Часовой пояс GMT +3.

Вверх