XPathFactory.newInstance(String uri)的文档是here。
我试图让这个失败:
println(System.getProperty("DEFAULT_PROPERTY_NAME"));
System.setProperty("DEFAULT_PROPERTY_NAME", "dummy");
println(System.getProperty("DEFAULT_PROPERTY_NAME"));
XPathFactory xPathFactory = XPathFactory.newInstance();
println(xPathFactory.getClass());
我得到的输出是:
null
dummy
class org.apache.xpath.jaxp.XPathFactoryImpl
我期待ClassLoader因子弹点而失败:
如果系统属性DEFAULT_PROPERTY_NAME +“:uri”存在, 其中uri是此方法的参数,然后将其值读取为a 班级名称。该方法将尝试创建此类的新实例 通过使用类加载器,如果成功则返回它 创建
但事实并非如此,我显然遗漏了一些东西。
我做错了什么?
答案 0 :(得分:1)
我期待ClassLoader因子弹点而失败:
此要点指的是方法:
public static final XPathFactory newInstance(String uri)
但你在呼唤:
public static final XPathFactory newInstance()
指出:
此方法在功能上等同于:
的newInstance(DEFAULT_OBJECT_MODEL_URI)
由于W3C DOM的实现始终可用,因此该方法永远不会失败。
答案 1 :(得分:0)
请更改
System.setProperty("DEFAULT_PROPERTY_NAME", "dummy");
到
System.setProperty(XPathFactory.DEFAULT_OBJECT_MODEL_URI, "dummy");