在我的XML中,我有
<myelem required="false"/>
Run Code Online (Sandbox Code Playgroud)
我如何将该required属性读作布尔值?我可以读取它String并且在吸气器内部做到这一点:return new Boolean(required)
但也许有一些更优雅的方式?
只需简单地使用booleanJava类中的成员:
@XmlAttribute
private boolean required;
Run Code Online (Sandbox Code Playgroud)
或者,如果您使用getter-setter样式的映射:
@XmlAttribute
public boolean isRequired() {
return required;
}
Run Code Online (Sandbox Code Playgroud)
该JAXB解组能够解释"true"和"false"XML文档中的字符串boolean值.
更新:
我用以下类测试了这个:
test/MyElem.java:
package test;
import javax.xml.bind.annotation.*;
@XmlRootElement(name="myelem")
public class MyElem {
private boolean required;
@XmlAttribute
public boolean isRequired() {
return required;
}
public void setRequired(boolean value) {
required = value;
}
}
Run Code Online (Sandbox Code Playgroud)
Test.java:
import javax.xml.bind.*;
import java.io.*;
import test.*;
public class Test {
public static void main(String[] args) {
try {
JAXBContext jc = JAXBContext.newInstance(MyElem.class);
Unmarshaller u = jc.createUnmarshaller();
Object o = u.unmarshal( new File( "test.xml" ) );
System.out.println(((MyElem)o).isRequired());
} catch(Exception e) {
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
并使用以下输入(test.xml):
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<myelem required="true"/>
Run Code Online (Sandbox Code Playgroud)
我在控制台上得到了正确的结果:
true
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6824 次 |
| 最近记录: |