java - 为什么会抛出空指针异常?

标签 java 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 code>,如果 myobjnull,您将在尝试调用 .equals() 时收到 NullPointerExceptionnull 对象上。


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

if (myobj == null)

要测试不为空,请使用:

if (myobj != null)

关于java - 为什么会抛出空指针异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10959853/

相关文章:

java - E/art:发送回复到调试器失败 : Broken pipe, 但应用程序仍在运行

java - 如何创建算法来在 RecyclerView 中设置多重检查项目

java - 让java显示超过1个.add()

java - 线程异常...: null - trying to convert String from file to Integer

exception - 简单的 IPython 示例在 sys.exit() 上引发异常

azure - Azure 数据工厂中复制事件的异常处理

python - 如何检查变量是否存在?

java - 如何通过 jtextfield 迭代和打印矩阵?

java - Firebase 数据映射到 Java 类

java - JTA事务意外回滚,嵌套异常为javax.transaction.RollbackException