2012-10-22 25 views
1

我有一些代码获取数据,然后按顺序选择它。为此,我使用简单的地图,稍后我可以轻松访问(我认为...)。第二个映射值始终为空,即使它打印出来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当我打印出来..

+0

'它'是什么?什么是“it.company”?什么是“钥匙”?其中之一是不是你认为它是 –

+0

一切都是正确的,我打印出来,这一切都适合。但我现在发现了这个问题。当放入类别时,由于某种原因它不是一个字符串,所以一个简单的.toString()就修正了它。 – Ms01

+0

那么一切都不正确? –

回答

1

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

你可以尝试

的一件事是:

​​

然后

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

解决办法很简单,使类作为一个字符串:

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

这一点修复这一切按预期工作后。