我有以下代码:
Map<BigInteger, AttributeValue> values = getParameters(elementHandler);
AttributeValue value = values.get(attrID);
AttributeValue auxValue = null;
if (auxAttrID != null)
auxValue = values.get(auxAttrID);
try {
if (value == null) {
// some code here
}
if (value != null) {
assert (value != null) : "value is null";
if (value.getValue() == null ) {
// some code here
} else if (auxAttrID != null && auxValue != null) {
// some code here
}
}
} catch (Exception e) {
log.error("Error at getting attribute value (attr#" + attrID + ", auxAttrId#" + auxAttrID + ")", e);
}
return value;
}
它在行
生成NullPointerException
if (value.getValue() == null )
在断言之后。
AttributeValue
是一个简单的POJO类。为什么会这样,我该如何解决?
答案 0 :(得分:1)
它在行
处产生NullPointerExceptionif (value.getValue() == null )
if (value != null) {
//...
if (value.getValue() == null ) {
//....
上述if
条件指出,当您调用value
时,NULL
不是value.getValue()
。仍然为NullPointerException
获取value.getValue()
意味着异常来自方法getValue()
(例如,您尝试使用NULL
对象访问任何类属性等。)
使用getValue()
。
使用getStackTrace()找出问题发生的位置。有关详细信息,请阅读this。