2017-01-19 37 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