erro do compilador ao usar o Google goiaba a partir do código scala
Estou usando o Google Guava a partir de um código scala. E ocorre um problema quando estou tentando usar Int como um tipo de chave, como no exemplo:
CacheBuilder.newBuilder()
.maximumSize(2)
.expireAfterWrite(24, TimeUnit.HOURS)
.build(
new CacheLoader[Int, String] {
def load(path: Int): String = {
path + "hello"
}
}
)
Parece estar bem, mas o tipo inferido de objeto criado éLoadingCache [Int com AnyRef, String]:
val cache: LoadingCache[Int with AnyRef, String] = CacheBuilder.newBuilder()
.maximumSize(2)
.expireAfterWrite(24, TimeUnit.HOURS)
.build(
new CacheLoader[Int, String] {
def load(path: Int): String = {
path + "hello"
}
}
)
E o erro ocorre quando estou tentando obter um elemento como neste exemplo:
cache.get(1)
Erro do compilador Scala:
[ERROR] error: type mismatch;
[INFO] found : Int(1)
[INFO] required: Int
[INFO] cache.get(1)
[INFO] ^
Alguém pode me indicar por que esse erro aparece e o que estou fazendo de errado?
ENV:
Google Guava 15.0Scala 2.11.5