gpt4 book ai didi

mvel - 如何迭代在 MVEL 中创建的 map

转载 作者:行者123 更新时间:2023-12-04 16:50:21 24 4
gpt4 key购买 nike

我在 MVEL 中创建了一个 map ,我必须使用 foreach 对其进行迭代。我该怎么做?

还有一个类似的问题: How to iterate over a map in mvel但在那种情况下, map 是用 Java 创建的,并且有一个返回键数组 (entrySet) 的方法,而我不是这种情况。

//MVEL
map = [
'a': 'a1',
'b': 'b2',
'c': 'c3'
];

foreach (key: map) {
System.out.println(key);
}

我在 foreach 循环中尝试了 map 和 map.entrySet,但似乎都不起作用。

注意:我使用 MVEL 命令行和 MVEL 版本 2.2.0.15 对其进行了测试

最佳答案

虽然你已经接受了一个答案,但我认为最好添加一些内容以免误导其他人:

... had a method to return array of keys (entrySet) which is not the case with me

首先,Map是 map 。在 MVEL 中创建的 map 只是一个“Java” map 。迭代的方式是一样的,他们提供的方法也是一样的

其次,entrySet() 没有返回“键数组”。它返回一组条目(顾名思义)。

我不确定为什么你不能使用 entrySet 因为它对我来说工作得很好。我怀疑您已经执行了 foreach (e : map.entrySet)。这是行不通的,因为在 MVEL 中,属性导航可能意味着几件事,比如 bean 属性(这意味着它将调用 map.getEntrySet()),或者查找 map (这意味着它将调用map.get('entrySet')),或者获取字段(意思是'map.entrySet')。但是,所有这些都不适用于您的情况。您只想调用 map.entrySet() 方法,这样您就应该执行 foreach (e : map.entrySet())

正确的做法是这样的:

map = ['a':'a1', 'b':'b1'] ; 
foreach(entry : map.entrySet()) {
System.out.println('key ' + entry.key + ' value ' + entry.value)
};

关于mvel - 如何迭代在 MVEL 中创建的 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17333837/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com