如何在 Kotlin 中创建 Guava CacheBuilder?
How do you create a Guava CacheBuilder in Kotlin?
在 Kotlin 中构造 Guava CacheBuilder 的正确方法是什么?
我正在根据示例使用 CacheLoader 和 Guava 制作一个简单的客户端缓存。示例:
LoadingCache<Key, Graph> graphs = CacheBuilder.newBuilder()
.maximumSize(1000)
.build(
new CacheLoader<Key, Graph>() {
public Graph load(Key key) {
return createExpensiveGraph(key);
}
});
由于包私有构造函数错误,无法编译 CacheLoader 的以下翻译:
CacheLoader<Key, Graph>() {
fun load(key: Key): Graph {
return createExpensiveGraph(key)
}
}
您可以使用 CacheLoader.from { key: Key? -> 值}。您需要键入注释 lambda 参数并使其可为空。
CacheBuilder.newBuilder()
.maximumSize(1000)
.build(
CacheLoader.from { key: Key? -> createExpensiveGraph(key) }
)
在 Kotlin 中构造 Guava CacheBuilder 的正确方法是什么?
我正在根据示例使用 CacheLoader 和 Guava 制作一个简单的客户端缓存。示例:
LoadingCache<Key, Graph> graphs = CacheBuilder.newBuilder()
.maximumSize(1000)
.build(
new CacheLoader<Key, Graph>() {
public Graph load(Key key) {
return createExpensiveGraph(key);
}
});
由于包私有构造函数错误,无法编译 CacheLoader 的以下翻译:
CacheLoader<Key, Graph>() {
fun load(key: Key): Graph {
return createExpensiveGraph(key)
}
}
您可以使用 CacheLoader.from { key: Key? -> 值}。您需要键入注释 lambda 参数并使其可为空。
CacheBuilder.newBuilder()
.maximumSize(1000)
.build(
CacheLoader.from { key: Key? -> createExpensiveGraph(key) }
)