2009-10-09 20 views
7

È facile rendere gli oggetti disponibili su Rhino da Java utilizzando ScriptableObject.putProperty, ma esiste un modo per esporre una funzione di primo livello? Cioè, posso fare in modo che gli script di Rhino possano chiamare foo() e fare in modo che invochino il codice Java?Esporre una funzione da Java a Rhino

risposta

6

Umm ... yes, you can. Forse non sto capendo correttamente la tua domanda (cosa intendi per "funzione di primo livello"?) Ma se hai esposto l'oggetto java a Rhino, puoi chiamare i suoi metodi.

+1

Scusate se non ero chiaro. Mentre posso esporre un oggetto, che mi permette di chiamare foo.bar(), preferirei semplicemente chiamare bar(). Quindi, per 'funzione di livello superiore' intendo una funzione che è una proprietà di Rhino Scope attualmente in esecuzione, se questo ha più senso. – Thom

+3

Oh, capisco. È possibile definire un oggetto FunctionObject: https://www.mozilla.org/rhino/apidocs/org/mozilla/javascript/FunctionObject.html e associarlo allo scope globale (o corrente) tramite putProperty() – ChssPly76

+0

Superb, che sembra perfetto . Grazie! – Thom

Problemi correlati