конвертируются назад и вперед полностью прозрачно. Можете ли вы привести конкретный пример, где это становится "хитрым"?
ользую Google Guava из кода Scala. И проблема возникает, когда я пытаюсь использовать Int в качестве типа ключа, как в примере:
CacheBuilder.newBuilder()
.maximumSize(2)
.expireAfterWrite(24, TimeUnit.HOURS)
.build(
new CacheLoader[Int, String] {
def load(path: Int): String = {
path + "hello"
}
}
)
Вроде бы все нормально, но предполагаемый тип создаваемого объектаLoadingCache [Int with 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"
}
}
)
И ошибка возникает, когда я пытаюсь получить элемент, как в этом примере:
cache.get(1)
Ошибка компилятора Scala:
[ERROR] error: type mismatch;
[INFO] found : Int(1)
[INFO] required: Int
[INFO] cache.get(1)
[INFO] ^
Может кто-нибудь указать мне, почему появляется такая ошибка и что я делаю неправильно?
ENV:
Google Guava 15.0Scala 2.11.5