我有java方法
void someMethod(String str, Map map) {
...
}
从 JS 调用这个方法
var map = new Object()
map.key1 = "val1"
...someMethod(str, map)
例外:
java.lang.NoSuchMethodException: None of the fixed arity signatures
[(java.lang.String, java.util.Map)] of method org.prjctor.shell.Bash.eval
match the argument types [java.lang.String, jdk.nashorn.internal.scripts.JO]
但在 Nashorn 文档“Java 和 JavaScript 之间的数据类型映射”中说“每个 JavaScript 对象也是一个 java.util.Map,因此接收映射的 API 将直接接收它们”。
我究竟做错了什么?
同意之前的答案,即您不能像文档所暗示的那样执行此操作。
但是您可以创建并传递地图,如下所示
..
var HashMap = Java.type('java.util.HashMap');
var map = new HashMap();
map.put('1', 'val1');
...someMethod(str, map)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)