我在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) {
...
}
有人可以解释他们为什么这样做吗?或者这只是一个需要修复的错误代码。
答案 0 :(得分:3)
他们使用此代码作为测试来确定正在使用哪个版本的JAXB (JSR-222) API。 location
参数已添加到JAXB 2.1中的@XmlSchema
,如果抛出NoSuchMethodError
,则使用JAXB 2.0 API。
见第158-177行
Javadoc - @ XmlSchema.location