使用if语句

时间:2015-07-13 08:29:49

标签: java nullpointerexception

我有以下代码:

        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类。为什么会这样,我该如何解决?

1 个答案:

答案 0 :(得分:1)

  

它在行if (value.getValue() == null )

处产生NullPointerException
if (value != null) {
    //...
    if (value.getValue() == null ) {
        //....

上述if条件指出,当您调用value时,NULL不是value.getValue()。仍然为NullPointerException获取value.getValue()意味着异常来自方法getValue()(例如,您尝试使用NULL对象访问任何类属性等。)

使用getValue()

的实施方式编辑您的问题

使用getStackTrace()找出问题发生的位置。有关详细信息,请阅读this