是否可以在Kotlin中使用具有不同值类型的散列图?
我试过这个:
val template = "Hello {{world}} - {{count}} - {{tf}}"
val context = HashMap<String, Object>()
context.put("world", "John")
context.put("count", 1)
context.put("tf", true)
...但是这会给我一个类型不匹配(显然"John"
,1
和true
不是对象)
在Java中,你可以通过创建类型new String("John")
,new Integer(1)
,Boolean.TRUE
来解决这个问题,我已经在Kotlin中尝试过等效,但仍然会遇到类型不匹配错误。
context.put("tf", Boolean(true))
有什么想法吗?
答案 0 :(得分:32)
在Kotlin中,Any
是所有其他类型的超类型,您应该用它替换Java Object
:
val context = HashMap<String, Any>()
context.put("world", "John")
context.put("count", 1)
context.put("tf", true)
答案 1 :(得分:-1)
对于新访客,也可以使用此方法
val a= hashMapOf<Any,Any>( 1 to Exception(), 2 to Throwable(), Object() to 33)
其中键和值都可以是任何类型。