为什么null.equals(null)不会抛出NullPointerException

Avi*_*ddy -4 java nullpointerexception

null.equals(null)在我的情况下不会抛出NullPointerException.无法理解.在else if条件中的以下代码片段中,basePartNumber和partNumber可能为null.当控件到来并且我在eclipse中调查时,我看到了一个N​​ullPointerExcption.但它不会抛出异常,代码会继续下一次迭代.有人可以解释

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;
                }
            }   
Run Code Online (Sandbox Code Playgroud)

lsc*_*tze 5

我们来看看你的代码.该else部分永远不会执行,因为basePartnumer == null总是如此basePartnumber = null.

String basePartnumber = null;
...
if(basePartnumber == null){
    basePartnumber = partNumber;
} else if(!basePartnumber.equals(partNumber)){
Run Code Online (Sandbox Code Playgroud)