gpt4 book ai didi

JAVA-JAXB/将类定义为字段

转载 作者:行者123 更新时间:2023-12-01 23:56:46 25 4
gpt4 key购买 nike

我正在使用 jaxb,据我了解,我们为每个元素和属性字段定义,然后 jaxb 重新识别该属性,并将其值放入该元素中。我的问题是我的属性之一是类:

<div class="hello"> Hi </div>

所以我想在类div中定义下一个:

String class;
public String getClass() {
return class;
}

@XmlAttribute
public void setClass(String class) {
this.class = class;
}

但我不能,因为 - token “class”上的语法错误,无效的 VariableDeclarator

我能做什么?

最佳答案

您可以使用name XmlAttribute的属性(property)为映射变量指定不同的名称。

String className;
public String getClassName() {
return clazz;
}

@XmlAttribute(name="class")
public void setClassName(String className) {
this.className = className;
}

它工作得很好

import java.io.StringReader;
import java.io.StringWriter;

import javax.xml.bind.JAXBContext;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;

public class Test {

public static void main(String[] args) throws Exception {
JAXBContext context = JAXBContext.newInstance(Div.class);

Div div = new Div();
div.setClassName("new-item");
StringWriter sw = new StringWriter();
context.createMarshaller().marshal(div, sw);
System.out.println(sw.toString());

String s = "<div class=\"hello\"> Hi </div>";
Div object = (Div) context.createUnmarshaller().unmarshal(new StringReader(s));
System.out.println(object.getClassName());

}

@XmlType(name = "div")
@XmlRootElement(name = "div")
public static class Div {

private String className;

@XmlAttribute(name = "class")
public String getClassName() {
return className;
}

public void setClassName(String className) {
this.className = className;
}
}
}

关于JAVA-JAXB/将类定义为字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15492783/

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