我试图将类似下面的内容编组到其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。我知道这听起来很不直观,但这就是我需要满足下游代码的要求。

是否存在解决此类情况的全局修补程序。提前致谢。

最佳答案

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

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


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


http://blog.bdoughan.com/2012/12/jaxb-representing-null-and-empty.html

09-07 19:38