null.equals(null)在我的情况下不抛出NullPointerException。无法理解。在else if条件中的以下代码片段中,basePartNumber和partNumber可能为null。当控制到达并且我在eclipse调查时,我看到一个NullPointerExcption。但它并没有抛出异常,代码继续下一次迭代。可以解释一下为什么null.equals(null)不会抛出NullPointerException
String basePartnumber = null;
for(Row detailRow:detailRows){
String partNumber = AscendRowUtil.getString(detailRow, ASNConstants.BUYER_PART_NUMBER);
if(basePartnumber == null){
basePartnumber = partNumber;
} else if(!basePartnumber.equals(partNumber)){
validationResult.addMessage(ASNI18nMessageKeys.ERROR_ASN_CANNOT_HAVE_DIFFERENT_PARTNUMBER_ITEMS);
break;
}
}
如果'basePartnumber'为null,那么'else'块将不会被执行。所以没有NPE – TheLostMind
else只有在basePartnumber不为空时才会被执行,如果你希望这两个sattements得到执行,你可以拥有!basePartnumber.equals(partNumber – user3607869
如果'basePartnumber'在else if中可以为null?如果那是null ,它就会陷入如果部分 –