1

我有一些代码获取数据,然后按顺序选择它。为此,我使用了以后可以轻松访问的简单地图(我想..)。

我在循环中使用以下代码将地图插入另一个名为“公司”的地图:

def x = [:]
x.put(it.category[i], it.amount[i])
companies.put(it.company, x)

我肯定可以写出结果:[Microsoft:[Food:1], Apple:[Food:1]]

但是,当我即将获得每家公司的食品价值时,它总是null。这是我用来获取值的代码:

def val = companies.get(it.company).get(key.toString())
def val = companies[it.company][key] // doesn't make a difference

Val 始终为空。有人可以帮助和/或解释为什么我有这个错误。我究竟做错了什么?我的意思是,1当我打印出来时,我可以清楚地看到..

4

2 回答 2

1

我的猜测是,it.category[i]并且key是完全不同的类型......

您可以尝试的一件事是:

x.put(it.category[i].toString(), it.amount[i])

进而

def val = companies[it.company][key.toString()] // doesn't make a difference
于 2012-10-22T08:33:25.137 回答
0

解决方案很简单,将类别设为字符串:

x.put(it.category[i].toString(), it.amount[i])

在那次小修复之后,一切都按预期工作。

于 2012-10-22T08:33:39.043 回答