Umgang mit Null für bigdecimal
Mein code sieht wie folgt aus,
caseX caseXObj = caseXBo.getCaseXDao().findCaseXBySID(selectedID);
if(caseXObj != null && caseXObj.getCaseInGrossAmt() != null){
} else {
caseXObj.setCaseAmt(BigDecimal.ZERO);
}
Habe ich behandelt NUll-Zeiger für die caseX und auch für getter und beim null-setzen der bigdeciaml zu einem default-Wert NULL. Trotzdem bekomme ich Null-Zeiger-Ausnahme in der Set-Zeile.Irgendwelche Vorschläge?
Es ist in der
erste Ausnahme @ caseXObj.setCaseAmt(BigDecimal.NULL);
else
block. So caseXObj
ist null
erste Ausnahme @ caseXObj.setCaseAmt(BigDecimal.NULL);
InformationsquelleAutor JNPW | 2013-04-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist durchaus möglich, dass
caseXObj
istnull
, so wird es Ursache derNullPointerException
. Testen Sie die drei Fälle wie diese:Im wesentlichen, der Fehler war, dass Sie die Prüfung nur für zwei Fälle - und es gibt drei von Ihnen.
nicht unbedingt. Es hängt der zurückgegebene Wert von
aseXBo.getCaseXDao().findCaseXBySID(selectedID)
, die möglicherweise oder möglicherweise nichtnull
Ja, aber dann wird er nie gehen, um die
setCaseAmt()
. So oder so gutes Beispiel.InformationsquelleAutor Óscar López
Vorausgesetzt, es ist OK für getCaseXDao() null zurück, die Sie zuordnen müssen caseXObj, anstatt verwenden Sie Sie als Zeiger in der else-Klausel.
InformationsquelleAutor Patricia Shanahan
Weil Sie nicht auf null prüfen in deinem else-Teil.
Sollte es sein:
InformationsquelleAutor user1697575