我想做的是:
setParameter(String name, String value)
但 API 是:
void setParameter(QName name, XdmValue value)
我找不到任何示例来正确创建 XdmValue 和 QName,我找到的示例都使用此函数/API 的不同版本。
通常参数的名称不在命名空间中,因此您可以使用构造函数new QName("p")
构造 QName 。如果参数值为字符串,则可以使用 new XdmAtomicValue("value")
构造该值。所以你的例子简化为
setParameter(new QName(name), new XdmAtomicValue(value))
在设计这样的 API 时,必须仔细判断如何平衡为常见简单情况提供"快捷方式"方法所带来的简单性与拥有大量方法所带来的复杂性。所以我提供了new QName(string)
,但我没有提供setParameter(string, string)
。