通过JAXB反序列化自定义对象创建

时间:2013-07-24 10:04:01

标签: java jaxb

我有课:

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "ClassFqn", propOrder = { <some properties> })
public class ClassFqn
{       
   //... Here should be fields, constructor and logic
}

对象是不可变的,我使用缓存对象池工厂而不是直接创建。

在为这些对象执行JAXB反序列化时,我可以使用此池工厂吗?

1 个答案:

答案 0 :(得分:2)

有几种方法可以支持这种用例。

选项#1 - 使用@XmlType指定工厂类别&amp;方法

您可以使用@XmlType注释指定工厂类和方法:

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(
    name = "ClassFqn", 
    propOrder = { <some properties> }
    factoryClass=ClassFqnFactory.class,
    factoryMethod="createClassFqn")
public class ClassFqn
{       
   //... Here should be fields, constructor and logic
}

了解更多信息

选项#2 - 使用XmlAdapter

也可以利用XmlAdapter。基本上,您将数据读入临时对象,然后实现XmlAdapter以使用您自己的机制来创建最终对象。

了解更多信息