0

forループ内に次のコードがあります

MyClass myobj= new MyClass(customers, price);
System.out.println(myobj);
if (!myobj.equals(null)) { //same happesn with myobj != null
    System.out.println("not null");
}
myMethod(myobj);

myMethod本体は次のとおりです。

private void myMethod(MyClass myobj) {
   if (myobj.totalDemand()) {
      //bla bla
   }

Junitでコードを実行した後、「if(myobj.totalDemand())」という行はNullPointerExceptionをスローしますが、コンソールは「notnull」と出力します。

4

2 に答える 2

3

を呼び出した場合、クラスmyobj.equals(null)の for の実装が をスローしないという保証はありません。equals()NullPointerExceptionmyobjnullNullPointerException.equals()null


をテストするには、次のnullコードを使用します。

if (myobj == null)

null でないことをテストするには、次を使用します。

if (myobj != null)
于 2012-06-09T09:30:14.120 に答える
0

myobjがnullの場合は、NullPointerExceptionが発生し、コンソールでない場合は、「notnull」と出力されます。それで、すべての呼び出しサイクルの変数の顧客と価格に何かがありますか?

于 2012-06-09T09:44:04.210 に答える