Java JAXBContext newInstance(类,类)说明
我试图理解JAXB,并希望使用JAXB初始化多个对象。我在StackOverFlow中发现了一个很好的问题 所以我在看代码,试图理解每一部分。我认为我难以理解的第一个也是关键的部分是以下几行:Java JAXBContext newInstance(类,类)说明,java,jaxb,Java,Jaxb,我试图理解JAXB,并希望使用JAXB初始化多个对象。我在StackOverFlow中发现了一个很好的问题 所以我在看代码,试图理解每一部分。我认为我难以理解的第一个也是关键的部分是以下几行: JAXBContext jc = JAXBContext.newInstance(JAXB2_Lists.class, JAXB2_Book.class); 通过查看JAXBContext文档,我无法确定正在使用哪个newInstance方法。猜猜哪一个被使用,我真的不明白 我猜它正在使用以下重载
JAXBContext jc = JAXBContext.newInstance(JAXB2_Lists.class, JAXB2_Book.class);
通过查看JAXBContext文档,我无法确定正在使用哪个newInstance方法。猜猜哪一个被使用,我真的不明白
我猜它正在使用以下重载
public static JAXBContext newInstance(Class[] classesToBeBound,
Map<String,?> properties)
throws JAXBException
publicstaticjaxbcontextnewinstance(Class[]classestobeind,
地图属性)
抛出异常
参数:
classesToBeBound—要由新用户识别的java类的列表
JAXBContext
“被认可”是什么意思?以什么方式识别
请在这个问题上教育我。谢谢。以JAXB对这些对象进行编组和解编组的方式进行识别,因此必须向JAXB教授它们是哪些类,以便它将它们识别为有效的JAXB目标(并扫描/处理它们包含的相关注释) 在链接的示例中,编组了一个
列表
,其中包含Book
对象(因此书籍也“级联”编组),因此JAXB必须“识别”/“已知”
此外,您实际调用的方法是:
根据描述:
不仅新上下文将识别所有指定的类,而且
它还将识别任何直接/间接
从指定的类静态引用
因为您的列表
引用了书籍
,我想您可以从参数中省略书籍
类,只需调用
JAXBContext jc = JAXBContext.newInstance(JAXB2_Lists.class);
通过JAXB对这些对象进行封送和解封送的方式进行识别,因此必须告诉JAXB它们是哪些类,以便它将它们识别为有效的JAXB目标(并扫描它们包含的相关注释)。谢谢Berger,但在编码示例中封送的是Book类,对吗?代码首先有List类,所以它是同时编组List类和Book类吗?是的,在链接的示例中,一个列表被编组,其中包含Book对象(因此书籍也被“级联”编组),所以两者都必须被JAXB“识别”。为什么不提供这些答案作为答案,这样我就可以向您竖起大拇指了?=)我是否确定了正确的重载方法?那么对于类[]classesToBeBound,可以提供类对象的列表吗?那么,“映射属性”参数是如何涉及的呢?这一点根本没有解释,因为我可以从我提供的文档中确定。谢谢你的帮助您没有调用此方法,我更新了答案以提供更多详细信息。对于
JAXB新实例
,我有一个小小的疑问。我需要unmarshal
不同的maven子模块中存在的类
。我现在知道在同一个maven模块或项目中如何传递包
名称,但如果类存在于不同的子模块中
,那么如何传递包
名称?我是否需要将包
名称与子模块
信息一起传递?如果是这样的话,你能给我举个例子吗?我试了一个。很多东西,搜索了很多答案,但什么也找不到。