Bien que vous ayez accepté une réponse, je pense qu'il est préférable d'ajouter quelque chose pour ne pas induire d'autres personnes en erreur :
... avait une méthode pour retourner un tableau de clés (entrySet) ce qui n'est pas mon cas
Tout d'abord, une carte est une carte. Une carte créée avec MVEL est simplement une carte "Java". La façon d'itérer est la même et les méthodes sont les mêmes.
Deuxièmement, entrySet()
ne renvoie pas un "tableau de clés". Il renvoie un ensemble d'entrées (comme son nom l'indique).
Je ne vois pas pourquoi vous ne pouvez pas utiliser entrySet
car cela fonctionne très bien pour moi. Je soupçonne que vous avez fait foreach (e : map.entrySet)
. Cela ne fonctionnera pas, car dans MVEL, la navigation des propriétés peut signifier plusieurs choses, comme les propriétés d'un bean (ce qui signifie qu'il appellera map.getEntrySet()
), ou la recherche d'une carte (ce qui signifie qu'il appellera map.get('entrySet')
), ou de récupérer le champ (ce qui signifie "map.entrySet"). Cependant, toutes ces méthodes ne sont pas valables dans votre cas. Vous voulez simplement invoquer map.entrySet()
de sorte qu'il suffit de faire foreach (e : map.entrySet())
La procédure à suivre est la suivante :
map = ['a':'a1', 'b':'b1'] ;
foreach(entry : map.entrySet()) {
System.out.println('key ' + entry.key + ' value ' + entry.value)
};