Товарищи сегодня столкнулся с мега непонятной фигней.
Есть переменная Boolean в DTO и далее по коду она проверяется в
if (myDto.imABoolean)
И страница тупо крашится на этой строке - Attempt to de-reference a null object
Я сначала грешил на myDto - мол он пустой. А он оказывается содержит инстанс dto как и положено и
ВНИМАНИЕ imABoolean=null
Как такое вообще возможно? Собственно такое получается не просто так а после десериализации dto из JSON в котором данная переменная просто отсутствует.
Ладно не будем думать откуда так получилось,
НО как Boolean вообще может быть NULL?????????????
И почему крашится код???
Очередной глюк Salesforce ????
Товарищи сегодня столкнулся с мега непонятной фигней. Есть переменная Boolean в DTO и далее по коду она проверяется в if (myDto.imABoolean) И страница тупо крашится на этой строке - Attempt to de-reference a null object Я сначала грешил на myDto - мол он пустой. А он оказывается содержит инстанс dto как и положено и ВНИМАНИЕ imABoolean=null Как такое вообще возможно? Собственно такое получается не просто так а после десериализации dto из JSON в котором данная переменная просто отсутствует. Ладно не будем думать откуда так получилось, НО как Boolean вообще может быть NULL????????????? И почему крашится код??? Очередной глюк Salesforce ????
Все стандартно, в СФ все типы null based.
Странно, что ты раньше этого не знал.
Все стандартно, в СФ все типы null based. Странно, что ты раньше этого не знал.
Ну вот сколько я работаю - уже не первый год
Но чтобы
if (myBoolean)
мне выдало
Attempt to de-reference a null object
Ну никогда такого не было. !Даже сколько себя помню никогда Boolean не инициализирую напрямую и никогда проблем не было.
Ну вот сколько я работаю - уже не первый год Но чтобы if (myBoolean) мне выдало Attempt to de-reference a null object Ну никогда такого не было. !Даже сколько себя помню никогда Boolean не инициализирую напрямую и никогда проблем не было.
Это что получается надо теперь проверять
if (myBoolean != null) ?
Это что получается надо теперь проверять if (myBoolean != null) ?
Попробуй запустить:
Boolean myBoolean = null;
if(myBoolean) {}
Попробуй запустить: [code] Boolean myBoolean = null; if(myBoolean) { } [/code]
Вот я и удивлен, что именно ты задаешь такой глупый вопрос.
[quote="Dmitry Shnyrev"]Ну вот сколько я работаю - уже не первый год [/quote] Вот я и удивлен, что именно ты задаешь такой глупый вопрос.
Хотя я наверное я понял почему не встречался с такой проблемой
Я привык к порядку и всегда проверю Boolean
как
if (myBoolean == true) или if (myBoolean == false)
А это сейчас я смотрю не свой код и там просто стоит if(myBoolean)
Вот может быть и проносило меня. Круто!
Поменял на if (myBoolean == true) и ошибку ушла!
Хотя я наверное я понял почему не встречался с такой проблемой :D Я привык к порядку и всегда проверю Boolean как if (myBoolean == true) или if (myBoolean == false) А это сейчас я смотрю не свой код и там просто стоит if(myBoolean) Вот может быть и проносило меня. Круто! Поменял на if (myBoolean == true) и ошибку ушла!
Так надо делать со всеми типами данных.
[quote="Dmitry Shnyrev"]Это что получается надо теперь проверять if (myBoolean != null) ?[/quote] Так надо делать со всеми типами данных.
Мля, ну вот сколько кодирую, а оказалась что такая простая вещь проходила мимо меня.
Даже не знаю откуда ноги растут. Может взялось откуда-то из других языков или я реально вбил себе в голову!!!
Но это реально я круто лопухнулся. Даже не знаю что сказать!
[quote="Gres"]ты задаешь такой глупый вопрос.[/quote] Мля, ну вот сколько кодирую, а оказалась что такая простая вещь проходила мимо меня. Даже не знаю откуда ноги растут. Может взялось откуда-то из других языков или я реально вбил себе в голову!!! Но это реально я круто лопухнулся. Даже не знаю что сказать!
Наверное начинаю понимать откуда ноги растут -
Assembler со времени Z80
Флаги
Я даже с тех времени и не задумывался что Boolean может содержать что-то кроме True/False
:D Наверное начинаю понимать откуда ноги растут - Assembler со времени Z80 Флаги :D Я даже с тех времени и не задумывался что Boolean может содержать что-то кроме True/False
мощно:)
[quote]if (myBoolean == true) или if (myBoolean == false) [/quote] мощно:)
Спасибо
[quote="Michael"]мощно:)[/quote] Спасибо :D