在Java中检查对象的NULL的最佳方法

Mad*_*d-D 2 java null list

我有一个解决方案来检查从对象中提取的NULL值,但我觉得可能有比我在这里做的更好的方法.所以请建议我使用代码片段的最佳方法 :)

我将把我的xml内容传递给unmarshalling方法然后将unmarshalledValues传递给null检查方法(即ValidateInputFiled)

Contents unmarshalledValues = unmarshalingContent( xml ); 
inputCheck = ValidateInputField( unmarshalledValues );
Run Code Online (Sandbox Code Playgroud)

我有一个POJO用于​​我的XML元素,如下所述,

 @XmlRootElement( name = "contents" )
    public class Contents
    {
        @XmlElement
        String A;

        @XmlElement
        String B;

        @XmlElement
        String C;

        @XmlAttribute
        String D;

       public String getA()
      {
        return A;
      }

       public String getB()
      {
        return B;
      }

       public String getC()
      {
        return C;
      }

       public String getD()
      {
        return D;
      }
}
Run Code Online (Sandbox Code Playgroud)

我已经定义了ValidateInputFiled,如下所述

public Boolean ValidateInputField( Contents unmarshalledValues )
    {
        int checker = 0;
        Boolean listCheck = false;

        // Extracting unmarshalled values from xml
        String A= unmarshalledValues.getA();
        String B= unmarshalledValues.getB();
        String C = unmarshalledValues.getC();
        String D= unmarshalledValues.getD();

        if ( A== null || A.isEmpty() )
        {
            checker++;
        }

        if ( B== null || B.isEmpty() )
        {
            checker++;
        }

        if ( C== null || C.isEmpty() )
        {
            checker++;
        }

        if ( D== null || D.isEmpty() )
        {
            checker++;
        }

        if ( checker == 0 )
        {
            listCheck = true;
        }

        return listCheck;

    }
Run Code Online (Sandbox Code Playgroud)

在这里,我希望避免每个字符串值(即A,B,C,D)的NULL检查,而不是我可以使用集合或列表对内容或unmarshalledValues进行空检查?

Jef*_*ins 6

public static boolean isNullOrEmpty(String a) {
    return a == null || a.isEmpty();
}
Run Code Online (Sandbox Code Playgroud)

为每个值调用它.您可能想要考虑将它们全部添加到列表中,然后迭代它们,如果它们是,则递增检查器!isNullOrEmpty以保存代码膨胀,如果您有很多字段.

PS:将您的字段设为私有以保留封装.

pps:不要return checker == 0;为了保持代码整洁而使用单独的布尔值.