我在 OpenJDK JAXB 中发现了一些奇怪的代码:
com.sun.xml.internal.bind.v2.model.impl.ModelBuilder
try {
XmlSchema s = null;
s.location();
} catch (NullPointerException e) {
// as expected
} catch (NoSuchMethodError e) {
...
}
有人可以解释一下他们为什么这样做吗?或者这只是需要修复的错误代码。
他们使用此代码作为测试来确定哪个版本JAXB (JSR-222) http://jcp.org/en/jsr/detail?id=222正在使用 API。这location
参数被添加到@XmlSchema
在 JAXB 2.1 中,如果NoSuchMethodError
正在使用 JAXB 2.0 API 时抛出。
参见第 158-177 行
- http://grepcode.com/file/repo1.maven.org/maven2/org.jvnet.jaxb.reflection/jaxb2-reflection/2.1.4/org/jvnet/jaxb/reflection/model/impl/ModelBuilder.java http://grepcode.com/file/repo1.maven.org/maven2/org.jvnet.jaxb.reflection/jaxb2-reflection/2.1.4/org/jvnet/jaxb/reflection/model/impl/ModelBuilder.java
Javadoc - @XmlSchema.location
- http://docs.oracle.com/javase/6/docs/api/javax/xml/bind/annotation/XmlSchema.html#location() http://docs.oracle.com/javase/6/docs/api/javax/xml/bind/annotation/XmlSchema.html#location%28%29
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)