java - 为 bigdecimal 处理 Null

标签 java nullpointerexception bigdecimal

我的代码如下所示,

caseX caseXObj = caseXBo.getCaseXDao().findCaseXBySID(selectedID);

if(caseXObj != null && caseXObj.getCaseInGrossAmt() != null){

} else {
    caseXObj.setCaseAmt(BigDecimal.ZERO);
}

我已经为 caseX 和 getter 处理了 NUll 指针,当 null 将 bigdeciaml 设置为默认零值时。我仍然在 setter 行中得到空指针异常。有什么建议吗?

最佳答案

很有可能 caseXObjnull,所以它会导致 NullPointerException。您应该像这样测试这三种情况:

caseX caseXObj = caseXBo.getCaseXDao().findCaseXBySID(selectedID);
if (caseXObj != null && caseXObj.getCaseInGrossAmt() != null) {
    // do something with caseXObj 
} else if (caseXObj == null) {
    // initialize caseXObj, you were misssing this case!
} else {
    caseXObj.setCaseAmt(BigDecimal.ZERO);
}

从本质上讲,错误是您只测试了两种情况 - 而实际上是三种情况。

关于java - 为 bigdecimal 处理 Null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16107965/

相关文章:

java - 什么是 NullPointerException,我该如何解决?

在非 Activity 类中引用 String 时出现 java.lang.NullPointerException,即使在传入 Context 时也是如此

scala - FoldLeft 总和值与 BigDecimal.ZERO 起始值

java - BigDecimal compareTo 未按预期工作

java - BigDecimal - 如何在 Java 中进行此计算

java - RecyclerView的scrollToPosition()将项目放在底部。我怎样才能到达顶部?

Java 类扩展了 Groovy 类

java - 为什么 onActivityResult() 被工作线程阻塞?

java - Spring 启动 : Configuration Class is simply ignored and not loaded

Android生命周期和空指针问题