Saxon可以映射下面的扩展函数,用下面的varargs调用java静态方法吗?
XSLT:
<xsl:value-of select="mylib:fun('a', 'b', 'c')"/>
爪哇
public static String fun(String arg1, String... args) { ... }
我希望撒克逊支持varargs但是,我得到了
可识别名称空间URI和本地名称,但参数数量错误
我做错了吗?
它似乎能够识别序列()
,但我想实现一个零或多个参数的函数,比如标准XPath函数库中的参数。
谢谢
答案 0 :(得分:0)
我认为您已经回答了自己的问题:SAXON不支持它。
此外,有意义 SAXON不支持它。 Java varargs在编译器中实现;它们不在类文件或字节码中表示。所有SAXON看到的是接受两个参数(String
和String[]
)并返回String
的方法。
我不熟悉SAXON类型映射的所有细节,但也许您可以通过将列表作为第二个函数参数来实现您的目标:
<xsl:value-of select="mylib:fun('a', ('b', 'c'))"/>