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 に答える