2009-10-09 7 views
7

Es fácil hacer que los objetos disponibles a partir del rinoceronte de Java utilizando ScriptableObject.putProperty, pero hay una manera de exponer una función de nivel superior? Es decir, ¿puedo hacerlo para que los scripts en Rhino puedan llamar al foo() y tener esa llamada al código de Java?La exposición de una función de Java a Rhino

Respuesta

6

Umm ... yes, you can. Quizás no entiendo tu pregunta correctamente (¿a qué te refieres con "función de nivel superior"?) Pero si has expuesto el objeto java a Rhino, puedes llamar a sus métodos.

+1

Lo siento si no estaba claro. Si bien puedo exponer un objeto, lo que me permite llamar a foo.bar(), me gustaría llamar a bar(). Entonces, por 'función de nivel superior' me refiero a una función que es una propiedad del alcance de Rhino que se está ejecutando actualmente, si eso tiene más sentido. – Thom

+3

Oh, ya veo. Se puede definir una FunctionObject: https://www.mozilla.org/rhino/apidocs/org/mozilla/javascript/FunctionObject.html y asociarlo con alcance global (o su intensidad) a través de PutProperty() – ChssPly76

+0

Superb, que se ve perfecto . ¡Gracias! – Thom

Cuestiones relacionadas