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,但控制台会打印“not null”

4

2 回答 2

3

如果您调用myobj.equals(null),则无法保证equals()类的实现不会抛出 a NullPointerException,如果myobjnull,您将NullPointerException尝试.equals()null对象上调用。


要测试null,请使用以下代码:

if (myobj == null)

并测试不为空,使用这个:

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

如果 myobj 为 null,您将得到 NullPointerException,如果不是控制台,则会打印出“not null”。那么,每个调用周期中的变量客户和价格是否有任何内容?

于 2012-06-09T09:44:04.210 回答