所以我有
if(A != null && (A.getFullName() == null || A.getFirstName().equals("")){}
在检查A.getFullName
之前,jvm是否先检查A.getFirstName
?订单是从左到右还是可以在A.getFirstName
之前检查A.getFullName
?我问,因为如果A.getFullName
是null
,A.getFirstName
会给我一个NullPointerException
答案 0 :(得分:3)
是的,Java的逻辑运算符是short-circuit。在您的情况下,这意味着如果A.getFullName()
返回null
,则不会调用A.getFirstName()
。
有关进一步的讨论,请参阅Java logical operator short-circuiting。