String.ValueOf () для замены NULL на строку null при вызове метода - PullRequest
0 голосов
/ 02 апреля 2019

Я пытаюсь использовать String.valueOf() для замены нуля, когда я вызываю какой-то метод. Но он по-прежнему показывает nullpointerexception. Это может быть просто, но я что-то упускаю.

У меня есть такое утверждение

myvar = this.kind.name().toLowerCase()   

Это бросок java.lang.NullPointerException. Я пытаюсь сохранить строку "NULL" всякий раз, когда я получаю NPE. так что я попробовал это

myvar = String.valueOf(this.kind.name().toLowerCase()) -- not working

Я обнаружил в других сообщениях, что он может не работать, поскольку мы перегружали методы String.valueOf(char[]) и String.valueOf(object) и предлагали использовать ниже. Но все равно это не работает. Как мне назначить строку null в этом случае?

myvar = String.valueOf((this.kind.name().toLowerCase()) null))

Ответы [ 2 ]

10 голосов
/ 02 апреля 2019

Вы должны использовать

myvar = String.valueOf(this.kind.name()).toLowerCase();

, а не

myvar = String.valueOf(this.kind.name().toLowerCase());

. В документации valueOf() описывается

, если аргумент равен нулю, тогдастрока, равная «нулю»;в противном случае возвращается значение obj.toString ()

Итак, String.valueOf(this.kind.name()) вернет "null"

4 голосов
/ 02 апреля 2019

Если this.kind равно нулю, вы сможете определить это по трассировке стека.

Вы можете справиться с ситуацией, добавив условие if или код, подобный

String.valueOf(this.kind == null ? null : this.kind.name()).toLowercase()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...