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 ,它就會陷入如果部分 –