J'utilise javax.scripting avec Rhino dans ce projet.Rhino Javascript: Comment convertir l'objet en une primitive Javascript?
J'ai une méthode Java qui renvoie un objet Java (Double, Long, Entier, etc.). Je veux appeler cette méthode à partir de javascript et référence le résultat en tant que type primitif Javascript. Cependant, javacript reconnaît le type de retour en tant qu'objet. Comment puis-je forcer la conversion en primitive javascript?
Cette question est très similaire à http://groups.google.com/group/mozilla.dev.tech.js-engine.rhino/browse_thread/thread/2f3d43bb49d5288a/dde79e1aa72e1301
Le problème qui est comment puis-je obtenir une référence au contexte et à la WrapFactory?
Exemple de code:
public class data
{
Double value = 1.0d;
public Number get() { return value; }
}
public static void main(String[] args)
{
ScriptEngine engine = new ScriptEngineManager().getEngineByName ("rhino");
data data = new data();
try
{
engine.eval("function test(data) { return data.getD('value1') + 5;};");
System.out.println("Result:" + ((Invocable)engine).invokeFunction("test", data));
}
catch (Exception e)
{
e.printStackTrace();
}
}
Sortie: Résultat: 15
Cela me donne une exception NullPointerException. Contexte.getCurrentContext() est null – Tazzy531
Modifié pour fournir une implémentation correcte – Kevin
Aucun effet. Obtenir toujours: Résultat: 15 – Tazzy531