2009-10-09 11 views
7

Łatwo udostępniać obiektom Rhino z Javy przy użyciu ScriptableObject.putProperty, ale czy istnieje sposób na odsłonięcie funkcji najwyższego poziomu? Czy mogę to zrobić, aby skrypty w Rhino mogły wywoływać foo() i wywoływać to w kodzie Java?Ujawnianie funkcji z Java do Rhino

Odpowiedz

6

Umm ... yes, you can. Być może nie rozumiem poprawnie twojego pytania (co rozumiesz przez "funkcję najwyższego poziomu"?), Ale jeśli wyeksponowałeś obiekt java na Rhino, możesz wywołać jego metody.

+1

Przepraszam, jeśli nie było jasne. Chociaż mogę odsłonić obiekt, który pozwala mi wywoływać foo.bar(), najlepiej byłoby po prostu zadzwonić do bar(). Tak więc przez "funkcję najwyższego poziomu" rozumiem funkcję, która jest właściwością aktualnie wykonywanego zakresu Rhino, jeśli ma to więcej sensu. – Thom

+3

Och, rozumiem. Możesz zdefiniować obiekt FunctionObject: https://www.mozilla.org/rhino/apidocs/org/mozilla/javascript/FunctionObject.html i powiązać go z zasięgiem globalnym (lub bieżącym) przez putProperty() – ChssPly76

+0

Znakomity, który wygląda idealnie . Dzięki! – Thom

Powiązane problemy