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 は常に null です。誰かが助けたり、このエラーが発生した理由を説明したりできますか。私は何を間違っていますか?つまり、印刷するとはっきりとわかり1ます..

4

2 に答える 2

1

私の推測では、it.category[i]それkeyは完全に異なるタイプです...

あなたが試すことができる1つのことは:

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 に答える