【发布时间】:2012-10-01 01:08:26
【问题描述】:
我想使用 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()。有什么想法吗?
【问题讨论】:
-
由于 Java “varargs”实际上是作为数组实现的,因此可以将数组直接从 JavaScript 传递给 Java 函数。
标签: java javascript rhino