Ich habe einige Javascript-Code, der auf mein Objekt in Java Nashorn ausgeführt wird:Wie Nashorns `ScriptFunction` Callback von Java aufrufen?
scriptEngine.eval("my.fn(function(a,b) {...}");
I Methode fn
in meiner Klasse erstellen können, die die ScriptFunction
erhält, aber ich habe nicht, wie Argumente zu übergeben, und rufen Sie diese Funktion von Java.
EDIT
Ich kann fn(Runnable)
oder fn(Callable)
machen, aber ich weiß noch nicht, wie Argumente zu einem dieser beiden passieren, von meiner Java-Implementierung von fn
?
Und was passiert, wenn Ihr Java-Code eine Überladung wie öffentliche Versprechen hat dann (Verbraucher onFulfilled, Verbraucher onRejected) und auch öffentliche Versprechen dann (Funktion onFulfilled, Function onRejected) '...' java.lang.NoSuchMethodException: Kann nicht eindeutig zwischen fixen Arity-Signaturen auswählen 'hinzugefügt eine zusätzliche Überladung für dann (JSObject ... selbe Fehler. Wie auch immer, um die Überladungen zu halten und standardmäßig nashorn zu haben ein Fallback? Wenn eine ScriptFunction-Überladung auftritt, wird der Fehler entweder nicht behoben – xer21