gpt4 book ai didi

java-8 - Nashorn JS 对象是否适用于 java.util.Map?

转载 作者:行者123 更新时间:2023-12-04 15:44:49 26 4
gpt4 key购买 nike

我有java方法

void someMethod(String str, Map map) {
...
}

从JS调用这个方法
var map = new Object()
map.key1 = "val1"
...someMethod(str, map)

异常(exception):
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 将直接接收它们”。

我究竟做错了什么?

最佳答案

同意之前的答案,您不能像文档暗示的那样这样做。
但是,您可以按如下方式创建和传递 map

..
var HashMap = Java.type('java.util.HashMap');
var map = new HashMap();
map.put('1', 'val1');
...someMethod(str, map)

关于java-8 - Nashorn JS 对象是否适用于 java.util.Map?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20512621/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com