将对象与 null 进行比较!

2022-09-03 08:32:46

我正在尝试验证对象是否为空,并且我正在使用以下语法:

void renderSearch(Customer c){
         System.out.println("search customer rendering>...");
         try {
             if(!c.equals(null)){            
                 System.out.println("search customer  found...");
             }else{               
                 System.out.println("search customer not found...");
             }
         } catch (Exception e) {
             System.err.println ("search customer rendering error: "
                                     + e.getMessage()+"-"+e.getClass());
         }
     }

我得到以下异常:

搜索客户渲染错误:空类 java.lang.NullPointerException

我以为我正在考虑用我的if和for循环来考虑这种可能性。任何帮助将不胜感激。


答案 1

在 if 语句中尝试 c != null。你不是在比较对象本身,而是在比较它们的引用。


答案 2
!c.equals(null)

该行在 c 上调用 equals 方法,如果 c 为 null,则会出现该错误,因为您无法在 null 上调用任何方法。相反,您应该使用

c != null