java - 将空标签解码到集合的新实例中

标签 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

在我试图解决的这种特定情况下,我需要用该特定类型的新实例替换空标签。例如,在上面,我期望返回一个 new ArrayList () 而不是 null。我知道这听起来违反直觉,但这就是我必须做的才能满足下游代码的要求。

是否有全局修复程序可以解决此类情况。提前致谢。

最佳答案

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

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

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

关于java - 将空标签解码到集合的新实例中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25003891/

相关文章:

java - 使用 Apache Kafka 0.10.0 API 和 Java 创建 Kafka 代理集群

apache - 如何在 centOS 上安装 Apache Tomcat

php - 使用 XML 而不是 MySQL

java - JAXB:当有多个 XSD 时,如何知道要解码到哪个 Java 类?

jaxb - Moxy 正在编码未映射的 java 属性

java - 每次获取 shell 脚本 255 的退出值

JavaFX MediaPlayer 在 1 分钟以上后停止

java - 我可以在 EJB 3 容器内的类路径中动态发现 xml 文件吗?

php - 如何在 curl 中发送 SOAP 请求

java - 在 Jaxb 中获取元素的动态属性