J'essaie d'appeler un constructeur pour un objet de collection personnalisé. Cet objet personnalisé accepte un paramètre de type Class.Passage Classe <?> paramètre utilisant Rhino
En java, cela se fait comme ceci:
ICollection col = new PersistentCollection(ContentX.class);
Ceci est ma première plongée dans le rhinocéros, et je n'ai pas été en mesure de comprendre tout à fait comment passer ce paramètre. J'ai compris que "classe" est un mot réservé et donc non utilisable.
Je pensais que je pouvais obtenir la classe de Class.forName comme ceci:
importPackage(Packages.something.collections);
importPackage(Packages.something.content4);
var col = new PersistentCollection(Class.forName(ContentX));
Mais il jette juste ClassNotFoundException - avec le chemin complet something.content4.ContentX! Donc, évidemment, il a trouvé la classe ou il n'aurait pas connu le chemin.
Est-ce que je fais mal? Malheureusement, je ne suis pas en mesure de changer la bibliothèque Java en ce moment, j'ai besoin de réparer les données sans un nouveau déploiement. Googling pour la classe javascript donne des problèmes DOM/CSS.
Comment venir Javascript dans le mix? –
QPekka il utilise Rhino (devinant ici) de JDK 6 - il est emballé avec la version et étonnamment facile à utiliser – Pointy
@ Jörgen Je viens d'essayer 'var c = java.lang.Class.forName (" java.util.HashMap ")' de "jrunscript" et cela a très bien fonctionné. – Pointy