java.lang.NullPointerException - PullRequest
       7

java.lang.NullPointerException

2 голосов
/ 01 июня 2010

Я делаю условие со значением, когда оно равно нулю и когда оно не равно нулю. Время, когда это значение равно нулю, я получил java.lang.NullPointerException.

Как я мог справиться с этим, чтобы отклонить это исключение. Мне нужно условие, когда значение равно нулю, а когда нет.

Спасибо за помощь.

Ответы [ 5 ]

7 голосов
/ 01 июня 2010

Вы получаете NullPointerException, когда пытаетесь вызвать метод, используя переменную null. Простой пример:

String s = null;
int len = s.length();  // NullPointerException because s is null

Таким образом, вы должны проверить, является ли переменная null, прежде чем вызывать какой-либо метод, например:

int len;
if (s == null) {
    len = 0;
}
else {
    len = s.length();  // safe, s is never null when you get here
}

Обратите внимание, что NullPointerException обычно легко решить. Внимательно посмотрите на трассировку стека исключения, он точно скажет, в какой строке вашего кода происходит исключение. Проверьте, что может быть null в этой строке кода, и проверьте, вызываете ли вы метод для чего-то, что может быть null. Добавьте проверку (или исключите возможность того, что соответствующая вещь может быть null другим способом).

3 голосов
/ 01 июня 2010

Просто выполните правильную проверку для значения null. Условное, такое как

if (value == null)

никогда не вызовет нулевое Refe PointerException. Только если вы попытаетесь получить доступ к любым ссылочным null ссылкам, вы получите исключение. Поэтому вызов методов или доступ к другим элементам экземпляра объекта исключен.

2 голосов
/ 01 июня 2010

Используйте IF, чтобы проверить, что переменная не равна нулю, а затем используйте блок кода ELSE, когда она равна нулю.

if (variable != null)
{
    //code when object is not null
}
else
{
    //code when object is null
}

Нулевой указатель является только throwh, когда вы пытаетесь использовать нулевое значение

* 1006 например *

 variable.method();

Но вы всегда должны избегать ситуации, когда может возникнуть нулевой указатель

1 голос
/ 01 июня 2010

Как утверждают другие авторы, если вы не ожидаете, что ссылка s здесь будет нулевой, то исправьте ошибку, из-за которой ссылка будет нулевой в первой области. Однако, если действительно, что ссылка может быть нулевой, вы также можете сделать следующее, используя троичный оператор (Java 5 on)

int len = (s == null) ? 0 : s.length;

примечание: квадратные скобки не обязательны, но, на мой взгляд, делают их немного более читабельными.

0 голосов
/ 01 июня 2010

Действительно запутанный вопрос, но:

логическое значение isNull = true; if (значение! = ноль) {isNull = false;}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...