Y a-t-il un moyen d'accéder aux cartes Java et aux listes d'objets JavaScript dans Rhino? P>
J'ai une carte qui ne contient que d'autres cartes et des listes de primitives et de chaînes, j'aimerais transmettre ceci à un script de rhinocéros et faire des affaires et retourner l'objet modifié à Java - mais comme ils sont java.util.map et java.Util.Les objets, je ne peux pas utiliser la syntaxe Standard JavaScript Associative Array Array.
IE: Je ne sais pas s'il y a une façon spécifique à la rhinocérité de le faire, ou s'il y a une certaine conversion / utilitaire de moulage qui vous aidera.
Les Beansutils des Communes ne suffisent pas, car pour convertir une carte en un haricot (accessible via la syntaxe de réseau associatif), vous devez d'abord créer une classe qui possède tous les mutateurs / accesseurs nommés. Je ne saurai pas la structure de l'objet au moment de l'exécution. P> foomap.get ("clés") code> fonctionnera, mais
foomap.kename code> et
foomap ["kename"] code> ne sera pas. p>
5 Réponses :
Jetez un coup d'œil à Ringojs. Il a des emballages pratiques pour la liste et la carte pour rhinocéros tels que Celui-ci p>
https://developer.mozilla.org/fr/new_in_rhino_1. 7R3 # JS.C2.A0Objects_implément_java_collections affirme que JS Objects resp. Les tableaux peuvent désormais être lancés vers Carte Code> resp.
Liste CODE>, mais cela ne semble pas que cela fonctionnerait pour votre cas d'utilisation. P>
Les itérateurs semblent être la clé!
Si vous souhaitez itérer sur toutes les entrées d'une carte, vous pouvez effectuer les suivants P>
Java P>
while(parameterNames.hasNext()) { key = parameterNames.next(); value = parameterMap.get(key); }
J'ai eu un Un problème similaire qui peut être utile. J'ai essayé créé des objets de rhinocéros natifs et j'ai copié des données. P>
Depuis Rhino 1.7.12, vous pouvez créer ES6 Lambdas et créer votre propre fonction utilitaire, comme ceci: puis itérer comme ceci p>
Pour cette affaire, j'aimerais pouvoir utiliser
pour (var in list) {...} code> Syntaxe plutôt que de devoir utiliser un itérateur explicite.
FYI, numéro similaire concernant Instancitation d'objets natifs .