2017-01-19 41 views
0

数値を純粋なGroovyで文字列に変換する方法と、数字と文字列を文字列に連結する方法はありますか?それはほぼのように思えます。例えば数値をgroovyの文字列に変換する

def t = [:] 
t['a' << 24] = "happy" 
println t 
println t.get('a24') 

3行目は[a24:happy]のようなものが表示されますが、それはt['a24'] = "happy"ディスプレイに第2ラインを変更する4.行の3行目の一見同じ印刷検索可能ではないだろうが、それは実際にフェッチ結果は4行目です。

は、私は文字列に数値を変換および/または文字列+数を組み合わせるか、それが中に行われなければならないの純粋なGroovyの方法があり、両者は再び、そう

class java.util.LinkedHashMapを返し、それぞれの種類を確認した場合Java?

答えて

2

GroovyはleftShift()を呼び出すことによって<<を実装し、そう'a' << 24は実際Stringない、StringBufferを返す、String.leftShift(Object value)を呼び出します。

これは、マップキーがStringBufferであるため、Stringを渡すget('a24')を呼び出すと、何も見つかりません。

あなたはタイプ印刷していることがわかります。

t.each { k, v -> println k.getClass() } // prints: class java.lang.StringBuffer 
+0

を理にかなっています。上記の例では 't ['a' + 24]'を使って動作します。なぜ私が '<<'を使用してやったのかは分かりませんが、それにもかかわらずです。説明をありがとう。 – Joseph

関連する問題