que tienen una clase Java simple que tiene algunos métodos:¿Cómo puedo agregar métodos de una clase Java como funciones globales en Javascript usando Rhino?
public class Utils {
public void deal(String price, int amount) {
// ....
}
public void bid(String price, int amount) {
// ....
}
public void offer(String price, int amount) {
// ....
}
}
Me gustaría crear una instancia de esta clase y permitir que el código Javascript para llamar directamente a los métodos, así:
deal("1.3736", 100000);
bid("1.3735", 500000);
la única manera de que pudiera averiguar por ahora era utilizar
ScriptEngine engine = new ScriptEngineManager().getEngineByName("js");
engine.put("utils", new Utils());
y luego usar utils.deal(...)
en el código Javascript. También puedo escribir funciones de contenedor en Javascript para cada método, pero debería haber una forma más simple de hacerlo automáticamente para todos los métodos públicos de una clase.
Te das cuenta de Java y JavaScript son dos lenguajes completamente diferentes. Pueden tener una sintaxis parecida a C similar, pero no son lo mismo. – thecoshman
Rhino es un motor js incrustado para Java. Este tipo de cosas debería ser alcanzable. Lo logré en Perl con SpiderMonkey: http://blog.dorward.me.uk/2006/02/02/spambots_that_drink_coffee.html – Quentin
@thecoshman Esta es una pregunta absolutamente válida. Puede ejecutar Javascript en Java y es posible que necesite utilizar elementos de Java en JS. – lexicore