检查对象中的元素是否为空

时间:2012-07-13 12:56:55

标签: java class null nullpointerexception

我有一个类似于:

的简单数据集类
class DataSet {
    private String value;
    private String additionalValue;

    public DataSet(String value, String additionalValue) {
        this.value = value;
        this.additionalValue = additionalValue;
    }

    public String getAdditionalValue() {
        return this.additionalValue;
    }
}

然后我创建了一个ArrayList<DataSet>并添加了一个新元素DataSet("Value1", null)

现在,在某些时候,我需要检查值为"Value1"的条目是否有additionalValue,如果是,则检查它是什么。

我做一个简单的循环检查value.equals("Value1") == true,然后我做:

if (element.getAdditionalValue() != null) {
    return element.getAdditionalValue();
}

但是,只要它到达if语句,它就会抛出一个错误,表示该值为null。 如果returnadditionalValue,我怎样才能使它不会引发错误而只是跳过null语句?

修改

但问题是,当元素通过null条件时检查additionalValue时,该元素不能element.getValue.equals("Value1")

for (DataSet element : dataSet) {
    if (element.getValue.equals("Value1")) {
        if (element.getAdditionalValue() != null) {
            return element.getAdditionalValue();
        }
     }
}

2 个答案:

答案 0 :(得分:18)

我认为问题是您的element对象是null,因此您必须在检查additionalValue之前检查它。

if (element != null && element.getAdditionalValue() != null){
   return element.getAdditionalValue();
}

答案 1 :(得分:3)

这会让你感到厌烦:

if (element != null && element.getAdditionalValue() != null) {
    return element.getAdditionalValue();
}