我试图验证一个对象是否为null,我正在使用这种语法:
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());
}
}
Run Code Online (Sandbox Code Playgroud)
我得到以下异常:
搜索客户渲染错误:null class java.lang.NullPointerException
我以为我正在用if和else循环来考虑这种可能性.任何帮助,将不胜感激.
Gre*_*ver 11
!c.equals(null)
Run Code Online (Sandbox Code Playgroud)
该行在c上调用equals方法,如果c为null,那么您将得到该错误,因为您无法在null上调用任何方法.相反,你应该使用
c != null
Run Code Online (Sandbox Code Playgroud)
使用c == null
equals方法(通常)需要一个类型为customer的参数,并且可能正在调用该对象上的某些方法.如果该对象为null,您将获得NullPointerException.
c也可能为null,并且c.equals调用可能抛出异常而不管传递的对象如何