当方法返回null时会发生什么

Ahs*_*fiq 0 java

我是Java新手,需要在方法返回null和引用变量时找出进程.

这是方法的代码:

 public Lot getLot(int lotNumber)

 {

     if((lotNumber >= 1) && (lotNumber < nextLotNumber)) {

     // The number seems to be reasonable.

        Lot selectedLot = lots.get(lotNumber - 1);

      // Include a confidence check to be sure we have the

       // right lot.

         if(selectedLot.getNumber() != lotNumber) {

            System.out.println("Internal error: Lot number " +

                              selectedLot.getNumber() +

                               " was returned instead of " +

                               lotNumber);

            // Don't return an invalid lot.

            selectedLot = null;

           }
            return selectedLot;
        }

  else {

  System.out.println("Lot number: " + lotNumber +

                            " does not exist.");

      return null;
      }
   }
Run Code Online (Sandbox Code Playgroud)

当一个方法返回null和引用变量时,会有一个类数据类型会发生什么?

请用简单的词语解释.

Ruc*_*era 5

null是任何Objectin的有效值Java.既然Lot也是一个Java对象.null已验证.

如果你不小心,你最终可能会NullPointerException.

例如:

Lot lot=someInstance.getLot(2); // say lot is null
Run Code Online (Sandbox Code Playgroud)

然后

String something=lot.getThis(); // here is null.getThis()
Run Code Online (Sandbox Code Playgroud)

你会在NullPointerException这里结束.

您需要小心处理这些情况以避免NullPointerException.

例如:

Lot lot=someInstance.getLot(2);
if(lot!=null){
 String something=lot.getThis();
}  
Run Code Online (Sandbox Code Playgroud)