2015-02-11 8 views
1

Так я естьПорядок проверить условия

if(A != null && (A.getFullName() == null || A.getFirstName().equals("")){}

ли чек Jvm A.getFullName первый перед проверкой A.getFirstName? Является ли заказ слева направо или он может проверить A.getFirstName до A.getFullName? Я спрашиваю, потому что если A.getFullName является null, A.getFirstName даст мне NullPointerException

+0

Вы пытаетесь сравнить значения String? –

+0

Строки Java - это двойные кавычки, и вам не хватает скобок. –

+0

Объект типа string требуется .equals (object). Также вы получите освобождение от выполнения, поскольку JVM не обрабатывает его, как вы говорите слева направо, вам нужно проверить заранее. –

ответ

3

Да, логический оператор в Java сделать short-circuit. В вашем случае это означает, что если A.getFullName() возвращает null, A.getFirstName() не будет вызываться.

См. Java logical operator short-circuiting для дальнейшего обсуждения.

+0

Вопрос был отредактирован и теперь не имеет сопоставлений строк iffy. – immibis

+0

@immibis: Отлично, спасибо, что указали это. – NPE

Смежные вопросы