gpt4 book ai didi

java - 如何在运行时使用 JAXB 注释

转载 作者:行者123 更新时间:2023-11-29 08:11:23 25 4
gpt4 key购买 nike

我有以下 bean 类

@XmlRootElement(name = "book")
//Optional
@XmlType(propOrder = {"name" })
public class Book {

private String name;
private int num;

@XmlTransient
public int getNum() {
return num;
}

public void setNum(int num) {
this.num = num;
}

// name for your XML-Output:
@XmlElement(name = "bookName")
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}

和相应的编码代码

private static void marshalXML(Book bookstore) {

Writer w = null;
try {
// create JAXB context and instantiate marshaller
JAXBContext context = getContext();
if (context != null) {
Marshaller m = context.createMarshaller();
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
m.marshal(bookstore, System.out);
w = new FileWriter(BOOKSTORE_XML);
m.marshal(bookstore, w);
}
} catch (Exception e) {
System.out.println("error in marshalling");
} finally {
try {
w.close();
} catch (Exception e) {
}
}
}

我想让属性在运行时可配置,我想在运行时而不是编译时在“num”上指定@xmltransient。我该怎么做?

最佳答案

注意:我是 EclipseLink JAXB (MOXy) JAXB 2 (JSR-222) 专家组的负责人和成员。

MOXy JAXB 实现提供了通过其 MetadataSource 扩展在运行时操作映射元数据的能力。有关详细示例,请参阅:

关于java - 如何在运行时使用 JAXB 注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7957195/

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