2

我有课:

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

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

当我对这些对象进行 JAXB 反序列化时,我可以使用这个池工厂吗?

4

1 回答 1

3

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

选项 #1 -@XmlType用于指定工厂类和方法

您可以使用@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以使用您自己的机制来创建最终对象。

了解更多信息

于 2013-07-24T10:08:04.580 回答