Scala新手遇到问题:
val cache: LoadingCache[Long, String] = CacheBuilder.newBuilder()
.maximumSize(1000)
.expireAfterWrite(10, TimeUnit.MINUTES)
.build(
new CacheLoader [Long, String] {
override def load(key: Long): String = key.toString
})
得到了构建时间错误:
错误:(12,11)类型不匹配;
发现:com.google.common.cache.LoadingCache [Long,String]
必需:com.google.common.cache.LoadingCache [Long,String]
注意:Long&lt ;: Long,但Java定义的特征LoadingCache在K类型中是不变的。
您可能希望调查通配符类型,例如_ <: Long
。 (SLS 3.2.10)
.build(
这里有什么正确的解决方案?为什么代码错了?感谢。
答案 0 :(得分:1)
尝试将Long
替换为java.lang.Long
无处不在(由于自动装箱,您仍然可以使用Long
键访问它)。我记得当使用基元作为类型参数时,与Java中定义的泛型类型有类似的错误。