java - 在groovy中将数字转换为字符串

标签 java groovy

是否有任何方法可以将纯 Groovy 中的数字转换为字符串,或者将数字和字符串连接为字符串。看起来几乎可以。

例如:

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

第 3 行将显示类似 [a24:happy] 的内容,但在第 4 行中无法检索该内容。将第 2 行更改为 t['a24'] = "happy" 在第 3 行显示看似相同的打印,但实际上在第 4 行获取结果。

如果我检查每个类型,它们都会返回class java.util.LinkedHashMap

那么,是否有一种纯粹的 Groovy 方法将数字转换为字符串和/或组合字符串 + 数字,还是必须在 Java 中完成?

最佳答案

Groovy 实现 <<通过调用 leftShift() ,所以'a' << 24实际上调用 String.leftShift(Object value) ,它返回 StringBuffer ,不是String .

这意味着您的 map 键是 StringBuffer ,如此称呼get('a24') ,您在其中传递 String ,将找不到任何东西。

您可以通过打印类型来看到:

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

关于java - 在groovy中将数字转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41733708/

相关文章:

java - 从 native 迁移到 EclipseLink 持久性

web-services - Grails-调用Web服务时未找到类定义错误

java - Groovy 脚本运行 java 主类

java - 'gradle -q task' 实际上是做什么的?

java - 防弹 groovy 脚本嵌入

java - JAVA中的static Initializer是闭包吗

java - 可重复使用的条件/表达式类

java - 如何启用/禁用通过 youtube api 上传的视频获利

java - 如何应用一对多和多一注释(Java Persistence)

java - 用 Guava 修剪空格分隔的文件