オブジェクトが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());
}
}
次の例外が発生します:
顧客のレンダリングエラーの検索:nullクラスJava.lang.NullPointerException
この可能性をifandelseループで検討していると思いました。どんな助けでもいただければ幸いです。
Ifステートメントでc!= nullを試してください。オブジェクト自体を比較しているのではなく、それらの参照を比較しているのです。
!c.equals(null)
その行はcでequalsメソッドを呼び出しており、cがnullの場合、nullでメソッドを呼び出すことができないため、そのエラーが発生します。代わりに使用する必要があります
c != null
使用する c == null
、比較しているので参照、オブジェクトではありません。
C == nullを使用する
Equalsメソッドは(通常)customer型の引数を想定しており、オブジェクトに対していくつかのメソッドを呼び出している可能性があります。そのオブジェクトがnullの場合、NullPointerExceptionが発生します。
また、cがnullであり、渡されたオブジェクトに関係なく、c.equals呼び出しが例外をスローする可能性があります。
この場合、オブジェクトcはnullである可能性があります。
別の動作が必要な場合に備えて、Customerのequalsのデフォルトの実装をオーバーライドすることをお勧めします。
また、渡されたオブジェクトがnullでないことを確認してから、そのオブジェクトで関数を呼び出します。
現実には、cがnullの場合、null.equalsを実行しようとしているため、例外が生成されます。その比較を行う正しい方法は「null」.equals(c)です。