Можем ли мы избежать npe при проверке на null во вложенных Java-объектах? - PullRequest
0 голосов
/ 26 октября 2010

1) if(null != parentObj.childObj)

2) if(parentObj.childObj != null)

Считаете ли вы, что «1» позволит избежать потенциального исключения нулевого указателя в случае, когда «parentObj» равен нулю, вконтраст "2"?

Ответы [ 3 ]

5 голосов
/ 26 октября 2010

Почему не просто if(parentObj != null && parentObj.childObj != null)?

5 голосов
/ 26 октября 2010

номер

Если parentObj равен нулю, то любая попытка вызвать метод или обратиться к полю приведет к NullPointerExcepton. ! = всегда оценивает обе стороны.

Просто проверьте, является ли parentObj нулевым, и обработайте его соответствующим образом.

1 голос
/ 26 октября 2010

Если parentObj имеет значение NULL, ссылка на любой метод / поле в parentObj приведет к NPE.Другими словами, вам нужно if (parentObj != null && parentObj.childObj != null), чтобы избежать NPE.Groovy сокращает этот (очень распространенный) тип многословия с помощью безопасного оператора навигации , который позволяет писать if (parentObj?.childObj).

...