gpt4 book ai didi

java - 如何制作像 xmlbeans XmlObject.copy() 这样的 JAXB 对象的深层复制?

转载 作者:行者123 更新时间:2023-12-02 06:12:21 25 4
gpt4 key购买 nike

我的任务是重构一些使用 xmlbeans 的组件,现在使用 jaxb。一切都很顺利,直到我到达前作者称为 copy() function of one of the XmlObjects 的地方。 。由于 xmlbeans 中的所有对象都扩展了 XmlObject,因此我们免费获得了神奇的深复制功能。

Jaxb 似乎没有为我们提供这个。制作 Jaxb 对象的深层复制的正确且简单的方法是什么?

最佳答案

你可以引用这个

public static <T> T deepCopyJAXB(T object, Class<T> clazz) {
try {
JAXBContext jaxbContext = JAXBContext.newInstance(clazz);
JAXBElement<T> contentObject = new JAXBElement<T>(new QName(clazz.getSimpleName()), clazz, object);
JAXBSource source = new JAXBSource(jaxbContext, contentObject);
return jaxbContext.createUnmarshaller().unmarshal(source, clazz).getValue();
} catch (JAXBException e) {
throw new RuntimeException(e);
}
}

public static <T> T deepCopyJAXB(T object) {
if(object==null) throw new RuntimeException("Can't guess at class");
return deepCopyJAXB(object, (Class<T>) object.getClass());
}

这对我有用。

所有功劳都归https://gist.github.com/darrend/821410

关于java - 如何制作像 xmlbeans XmlObject.copy() 这样的 JAXB 对象的深层复制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/879453/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com