2012-10-22 57 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])

這一點修復這一切按預期工作後。