Java ↔ JavaScript (Карта) в ScriptEngine, кажется, только выйти "JS → Java - PullRequest
0 голосов
/ 08 октября 2018

Я использую JS изнутри Kotlin (Java 8)

val engine = NashornScriptEngineFactory().getScriptEngine(
    arrayOf("--language=es6",
        "-strict", // too much?
        "--no-java",
        //"--no-syntax-extensions",
        "--optimistic-types"), null)

Получение карты (технически {}) результатов, возвращаемых из функции JS в Java, работает нормально.

НО, когда я пытаюсь передать в Карту, я предполагал, что она будет преобразована в Объект.(Потому что я привык к JSON).

var myInput = mapOf("key1" to "value1", "key2" to 1234)
((engine as Invocable).invokeFunction("myFunction", myInput)

Но myFunction(arg1) упорно настаивает на том, что arg1 не определен, вместо ожидаемого {'key1':'value1','key2':1234}

1015 * Является ли "--no-ява" убивает его, потому что он должен бытьзатолкали в HashMap?Нужно ли мне сплющивать мою карту в переменную, потому что пропасть могут преодолеть только базовые типы?

Действительно странная часть состоит в том, что на обратном пути возвращение объекта (карты) из JavaScript myFunction возвращается обратно вКотлин как карта просто отлично!

...