Scala 如何创建com.google.common.collect.HashBiMap

Scala 如何创建com.google.common.collect.HashBiMap,scala,guava,Scala,Guava,给出编译错误 val map = com.google.common.collect.HashBiMap[String, Int].create() 如何创建com.google.common.collect.HashBiMap的实例?我认为这只是类型参数的放置位置问题。试一试 object com.google.common.collect.HashBiMap is not a value 类HashBiMap有两个泛型类型参数。它的伴生对象(共享名称HashBiMap)没有类型参数,因为

给出编译错误

val map = com.google.common.collect.HashBiMap[String, Int].create()

如何创建
com.google.common.collect.HashBiMap的实例?
我认为这只是类型参数的放置位置问题。试一试

object com.google.common.collect.HashBiMap is not a value

HashBiMap
有两个泛型类型参数。它的伴生对象(共享名称
HashBiMap
)没有类型参数,因为它是一个对象,而不是一个类。当您调用
HashBiMap.create
时,您正在对伴生对象调用
create
方法。因此,表达式
HashBiMap[String,Int].create
没有任何意义,因为
HashBiMap
引用的是未参数化的对象。它的
create
方法采用两个类型参数。所以,
HashBiMap.create[String,Int]()
做你想做的事。它返回一个
HashBiMap[String,Int]


如果您更熟悉Java:您给出的表达式类似于
Arrays.asList(1,2,3)
,而正确的表达式应该是
Arrays.asList(1,2,3)

是的,我在Java中似乎总是犯同样的错误:至少Scala的语法更加一致(类型总是跟在你要参数化的东西后面)。这是有意义的,因为
object
没有类型参数,但是方法有。
val map = HashBiMap.create[String, Int]()