繁体   English   中英

为什么这会引发空指针异常?

[英]Why is this throwing a null pointer exception?

我在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”

如果调用myobj.equals(null) ,则不能保证该类的equals()的实现不会抛出NullPointerException ,并且如果myobjnull ,则您将得到一个NullPointerException尝试在.equals()上调用.equals()null对象。


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

if (myobj == null)

要测试不为空,请使用以下命令:

if (myobj != null)

如果myobj为null,则将得到NullPointerException,如果不是,则控制台将输出“ not null”。 那么,在每个调用周期中,变量customers和price中是否有任何内容?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM