[英]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
,并且如果myobj
为null
,则您将得到一个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.