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

@XmlSeeAlso替代

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

@XmlSeeAlso替代

这取决于您如何创建JAXBContext。该newInstance方法可以与所有的类的显式列表被调用,该方法的文档也给出了类似的例子。

客户端应用程序必须提供新上下文对象需要识别的类的列表。新上下文不仅会识别所有指定的类,而且还将识别从指定类直接/间接静态引用的任何类。引用类的子类或@XmlTransient引用类的子类均未在JAXBContext中注册。例如,在以下Java代码中,如果执行newInstance(Foo.class),则新创建的JAXBContext将识别Foo和Bar,但不能识别Zot或FooBar:

class Foo {    @XmlTransient FooBar c;    Bar b;}class Bar { int x; }class Zot extends Bar { int y; }class FooBar { }

编辑:
如果您至少知道潜在jaxb类的程序包名称,则还可以给定上下文路径来创建上下文。

如果上述方法不可行,您还可以在运行时根据要序列化的对象创建类列表。我认为最好尝试重构您的代码以使其不必要。以下代码未经测试:

Set<Class> classes = new HashSet<Class>();classes.add(p.getClass());for (A a : p.getThings()) {    classes.add(a.getClass());}JAXBContext context = JAXBContext.newInstance(classes.toArray(new Class[classes.size()]));


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

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

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