我在 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
code>,如果 myobj
为 null
,您将在尝试调用 .equals()
时收到 NullPointerException
在 null
对象上。
要测试 null
,请使用以下代码:
if (myobj == null)
要测试不为空,请使用:
if (myobj != null)
关于java - 为什么会抛出空指针异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10959853/