Existe-t-il un moyen d'obtenir et d'utiliser une classe Java étendue à partir de JavaScript (Nashorn)? Ce que j'essaie de faire est d'étendre une classe Java dans Nashorn, puis de le renvoyer à Java. Par exemple, nous définissons une classe qui étend une autre classe JS:Obtenir la classe Java étendue de Nashorn
var SomeClass= Java.type("com.test.SomeClass");
var MySomeClass = Java.extend(SomeClass, {
aMethod1: function() {
print("m1");
},
aMethod2: function() {
print("m2");
},
});
J'ai essayé d'obtenir cet objet étendu en Java comme ceci: Object mySomeClass = scriptEngine.get("MySomeClass");
Cependant, je suis incapable de faire une méthode appelle cet objet en Java. Il lance toujours une exception lorsque j'essaie de le lancer dans une classe de base - com.test.SomeClass
.
Est-il possible d'utiliser une classe étendue créée dans Nashorn (JS) en Java?
Merci McDowell, ça marche maintenant. Mon erreur était assez simple, j'ai oublié de créer réellement un objet pendant/après l'utilisation de Java.Extend (...). :) –