将空标记解组到新的集合实例中

时间:2014-07-28 20:37:11

标签: java xml jaxb

我正在尝试将类似下面的东西解组为它们的JAXB等价物,并且字段按预期填充空值

XML

<University>
   <StudentFirstNames/>
</University>

JAXB POJO

public class University {
  List<StudentFirstNames> studentFirstNames = null;

  public void getStudentFirstNames() {
    return studentFirstNames 
   }

  public void setStudentFirstNames() {
   this.studentFirsNames = studentFirstNames;
  }
}

解组后,当我在JAXB对象中查找成员时,我返回null

 university.getStudentFirstNames() --> null

在我尝试解决的这种特定情况下,我需要用该特定类型的新实例替换空标签。例如,在上面,我期待一个新的ArrayList()而不是null。我知道这听起来很反直,但这是我为了满足下游代码所必须做的。

是否有解决此类实例的全局修复程序。提前谢谢。

1 个答案:

答案 0 :(得分:2)

您可以按如下方式初始化字段以获得所需的行为:

List<StudentFirstNames> studentFirstNames = new ArrayList<StudentFirstNames>;

为了能够区分空集合和空集合,您需要使用@XmlElementWrapper注释。