栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用JAXB编组/解组Java超类和子类

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用JAXB编组/解组Java超类和子类

谢谢各位的意见。我使用了所有答案的反馈,但最终都是有效的结合了这就是为什么我为将来可能遇到此问题的任何人创建单独的答案。

为了使它起作用,我必须确保在marhsalled /
unmarshalled的super和sub类中的所有getter方法都用标注

@XmlElement
。这将确定相应变量的XML标签。

@XmlElement (name = "OwnerID")    public int getOwnerId()    {        return ownerId;    }

必须对超类进行注释,

@XmlSeeAlso
以将子类绑定到它。即在我的代码中
RoadVehicle
是超类,并且
Car
Van
类都对其进行了扩展。

@XmlSeeAlso({Car.class, Van.class})public class Vehicle{

现在使用超级类和子类进行注释,唯一需要注释的其他类是列表类(在我的代码中为车库)。此处的更改将确定填充了哪些XML标签。

通过将

@XmlRootElement
注释应用于类的顶部来设置XML根标签。即“车辆”将是我的示例中的根XML标签。

@XmlRootElement(name = "Vehicle")public class Garage{

最后,

@XmlElements
必须
@XmlElements
为每个需要XML标签的子类声明一个带有注释的列表,并
name
提供XML标签的名称。必须在该集合的getter方法上方声明此列表。

@XmlElements    ({        @XmlElement(name = "Car", type = Car.class, required = false),        @XmlElement(name = "Van", type = Van.class, required = false)    })        public List<Vehicle> getListOfVehicles()    {        return vehicleCollection;    }


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/514518.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号