我在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”
答案 0 :(得分:3)
如果您致电myobj.equals(null)
,则无法保证该课程equals()
的实施不会引发NullPointerException
,如果myobj
为null
,您将NullPointerException
尝试在.equals()
对象上调用null
。
要测试null
,请使用以下代码:
if (myobj == null)
并测试not null,请使用:
if (myobj != null)
答案 1 :(得分:0)
如果myobj为null,则会出现NullPointerException,如果不是,则控制台将打印出“not null”。 那么,每个调用周期中的变量客户和价格是否存在任何变化?