当使用jaxb进行解组时,我在A类中有一些东西:

public class A {

@XmlElements( { //

@XmlElement(name = "g", type = A.class),

@XmlElement(name = "x", type = X.class),

@XmlElement(name = "y", type = Y.class),

})

List children;

}

也就是说,我有一个列表,孩子,由X:s和Y:s组成

现在我的问题:我想继承A,我想

重新定义’XmlElements’列表并将其绑定到同一个变量’children’,

喜欢:

public class B extends A {

@XmlElements( { //

@XmlElement(name = "g", type = B.class),

@XmlElement(name = "x", type = X.class),

@XmlElement(name = "y", type = Y.class),

@XmlElement(name = "z", type = Z.class),

})

List children;

}

以上问题有两个方面:

>我创建了一个新的变量children,我想引用A类中的变量.

>我想避免重新指定’x’和’y’,因为它们已在’A’中指定.

是否有一些良好的模式来实现这一目标?

或者一些关于如何构建这样的东西的指针/文章或其他信息?

解决方法:

没有避免重复声明注释,但是您可以将注释从字段移动到getter方法,只要您使用@XmlAccessorType注释告诉JAXB查找公共getter方法而不是字段.

因此,您可以使用新的注释集覆盖B类中的getChildren():

@XmlAccessorType(PROPERTY)

public class A {

private List children;

@XmlElements( { //

@XmlElement(name = "g", type = A.class),

@XmlElement(name = "x", type = X.class),

@XmlElement(name = "y", type = Y.class),

})

public List getChildren() {

return children;

}

public void setChildren(List children) {

this.children = children;

}

}

@XmlAccessorType(PROPERTY)

public class B extends A {

@XmlElements( { //

@XmlElement(name = "g", type = B.class),

@XmlElement(name = "x", type = X.class),

@XmlElement(name = "y", type = Y.class),

@XmlElement(name = "z", type = Z.class),

})

public List getChildren() {

return super.getChildren();

}

}

我不确定的是JAXB将如何处理重写的getChildren()方法.希望它能从B中获取注释,但它可能会让人感到困惑.

试试看吧.

标签:java,jaxb

来源: https://codeday.me/bug/20190705/1385160.html

java xml 变量替换_Java JAXB如何将XmlElements重新定义为现有变量相关推荐

  1. java xml解析器_Java XML解析器

    java xml解析器 Java XML parser is used to work with xml data. XML is widely used technology to transpor ...

  2. java pdf 图片替换_Java 添加、替换、删除PDF中的图片

    Java 添加.替换.删除PDF中的图片 本文介绍通过java程序向PDF文档添加图片,以及替换和删除PDF中已有的图片. 工具:Free Spire.PDF for Java (免费版) Jar获取 ...

  3. java word标签替换_JAVA实现替换WORD模板中的文字和图片

    1.本来有其他方法可以实现的,但是由于jar包一直有问题所以换了种,要是还有其他的更好的方法,希望可以讨论 2.废话不说直接上代码: 3.我自己加了个生成图片的方法,也可以不需要直接用已经存在的图片替 ...

  4. java 文件 模板 替换_JAVA 处理Word模板文件,替换其中的占位符

    1.java处理word是个大大的坑,无论是poi还是Java2word 都不是尽善尽美. 2.poi只能进行简单读操作,Java2word需要调用系统的com接口,系统机必须安装office和动态链 ...

  5. java xml添加节点_Java对XML节点的修改、添加、删除 –By Xstream框架

    在J2EE.Java项目中对xml操作是一项非常常见的事情,在我认识了XStream以后,才彻底明白XML模型对象的概念,使用XStream让我XML的设计不由自主更符合OO的风格.另外,除了在设计上 ...

  6. java xml dom4j 解析_Java使用DOM4J解析XML

    Dom4J方式解析XML文件.dom4j是非官方提供的xml文件解析方式,因此需要去第三方下载dom4j的jar包 File file = new File("D:\\chengmuzhe\ ...

  7. java xml数据解析_java xml解析,数据读取

    xml格式<?xmlversion ="1.0"encoding="UTF-8"?> xml格式 32 寺坡镇管理员 202cb962ac59075 ...

  8. java xml读取方法_Java读取XML文件的方法

    Java读取XML文件的方法 发布时间:2020-08-19 14:39:08 来源:亿速云 阅读:63 作者:小新 这篇文章主要介绍了Java读取XML文件的方法,具有一定借鉴价值,需要的朋友可以参 ...

  9. java xml特殊字符转义_Java中将xml文件转化为json遇到特殊字符会报错!

    前言: 我们在项目开发中,有时候调用别人提供的接口,接收到的数据是xml,这时候为了方便后续开发中的使用,需要解析xml并把数据转化成json,今天这篇文章就讲解下如何把xml转化成json,并在这个 ...

最新文章

  1. mac 思科 链路聚合_TCP/IP协议栈-之-数据链路层分析
  2. websocket session超时_SSE(ServerSent Events):替代websocket完成服务器推送
  3. 读书笔记—《销售铁军》随记9-最后一篇
  4. Nginx并发数、每秒连接数、下载速度限制,防攻击杀手锏
  5. BZOJ 3390: [Usaco2004 Dec]Bad Cowtractors牛的报复(最大生成树)
  6. node.js开发中使用Node Supervisor实现监测文件修改并自动重启应用(转)
  7. centos6.5lamp环境搭建
  8. LeNet卷积神经网络
  9. paip.提升用户体验---控件透明的设置
  10. 单片机无线通信学习笔记
  11. 使用kind快速搭建本地k8s集群
  12. html让图片悬浮在网页,网页制作灰度图片悬浮效果利用HTML5和jQuery实现
  13. 基于 HTML5 WebGL 的 3D 水泥工厂生产线
  14. Android通过AsyncTask与ThreadPool(线程池)两种方式异步加载大量数据的分析与对比
  15. 韩国驾驶照换中国驾驶照
  16. PS 2019 Mac版 自学入门系列(二)——区域选中
  17. Revit结合Dynamo建立某大桥下部结构-承台
  18. 导出Excel时出现80080005错误的解决办法
  19. windows installer服务坏了修复方法
  20. 程永强 - Yongqiang Cheng

热门文章

  1. Boost库之circular_buffer
  2. K-means算法、高斯混合模型 matlab
  3. python 中的for i in range()的使用(for _ in range())
  4. 8.文本处理(编码解码/文件操作)
  5. java里注释为什么报错_这些年我们在java中遇到过的坑,你遇到过几个
  6. mysql user表添加记录_《MySQL数据操作与查询》- 返校复习课练习题,创建数据库user_system,创建数据表user及user_ext...
  7. 免安装mysql8_MySQL数据库之MYSQL-8.0.11-WINX64(免安装版)配置
  8. python爬虫用urllib还是reques,python爬虫中urllib.request和requests有什么区别?
  9. 使用gcc的-finstrument-functions选项进行函数跟踪
  10. thttpd + Cgicc