我想使用 rhino(JavaScript)function.apply()
将参数传递给 varags Java 方法,如下所示:
function sprintf()
{
return java.lang.String.format.apply(arguments);
}
sprintf("%d\n", 5);
但是调用sprintf()
会报错:
Error: can't find method java.lang.String.format().
我想这是因为该format()
方法不是正确的 JavaScript 函数而是 Java 方法,所以它没有apply()
定义。(虽然这不是错误消息所说的,所以可能不是。)
我确实发现我可以添加自己的 apply() 方法:
java.lang.String.format.apply = function() {}
但是如果你明白我的意思,我看不出apply()
没有怎么写。apply()
有任何想法吗?