Почему это вызывает исключение NullPointerException? - PullRequest
0 голосов
/ 04 мая 2010
e.getCategory() != null ? e.getCategory().getName() : "";

Это выдает NullPointerException, и я не понимаю, почему. Кто-нибудь может объяснить?

Ответы [ 4 ]

6 голосов
/ 04 мая 2010

Пояснение:

В соответствии с правилами приоритета Java, ваш код анализируется следующим образом:

(("\"category\":" + "\"" + e.getCategory()) != null) ? e.getCategory().getName() : ""

со всей конкатенацией (("..." + e.getCategory())!= null) в качестве условия.

Поскольку "..." + e.getCategory() никогда не является null, код не работает.

6 голосов
/ 04 мая 2010

e - это null.

1 голос
/ 04 мая 2010

Ноль e? 1002 *

Возможно, вам стоит попробовать это:

(e != null) ?
    (e.getCategory() != null) ?
        e.getCategory().getName() : 
        ""
    : ""

Вернее, упрощенная форма:

(e != null && e.getCategory() != null) ?
    e.getCategory().getName() : 
    ""
0 голосов
/ 04 мая 2010

Решение найдено ....

ПРАВИЛЬНО

bufo.append("\"category\":" + "\"" + ((e.getCategory() != null) ? e.getCategory().getName() : "") + "\",");

ПРОБЛЕМА

bufo.append("\"category\":" + "\"" + e.getCategory()!=null?e.getCategory().getName():"" + "\",");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...