3

我在 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) {
        ...
    }

有人可以解释他们为什么这样做吗?或者这只是需要修复的错误代码。

4

1 回答 1

3

他们使用此代码作为测试来确定正在使用哪个版本的JAXB (JSR-222) API。该location参数已添加到@XmlSchemaJAXB 2.1 中,如果NoSuchMethodError被抛出,则使用 JAXB 2.0 API。

见第 158-177 行

Javadoc - @XmlSchema.location

于 2012-12-03T23:57:59.980 回答