2017-01-19 65 views
0

是否有任何方法將數字轉換爲純Groovy中的字符串或將數字和字符串連接成字符串。它差不多似乎你可以。將數字轉換爲groovy中的字符串

例如:

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

線3將顯示類似[a24:happy],但它不會在管線4改變第二線t['a24'] = "happy"顯示看似相同的打印第3行檢索,但它實際上取入導致第四行。

如果我檢查每一個類型,它們都返回class java.util.LinkedHashMap

所以,再一次,有沒有轉換一個數字,字符串和/或合併字符串+數字還是必須在做的一個純Groovy的方式Java的?

回答

2

通過調用leftShift() Groovy中實現<<,所以'a' << 24實際調用String.leftShift(Object value),它返回一個StringBuffer,而不是一個String

這意味着您的地圖密鑰是StringBuffer,因此撥打get('a24')(如果您傳遞String)將無法找到任何內容。

你可以看到,通過打印類型:

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

有道理。在我上面的例子中,使用't ['a'+ 24]'然後。我不確定爲什麼我使用'<<'但仍然使用。感謝您的澄清。 – Joseph