我正在尝试编写一个AsyncLoadingCache
接受 aCacheWriter
并且我得到一个IllegalStateException
.
这是我的代码:
CacheWriter<String, UUID> cacheWriter = new CacheWriter<String, UUID>() {
@Override
public void write(String key, UUID value) {
}
@Override
public void delete(String key, UUID value, RemovalCause cause) {
}
};
AsyncLoadingCache<String, UUID> asyncCache = Caffeine.newBuilder()
.expireAfterWrite(60, TimeUnit.SECONDS)
.writer(cacheWriter)
.maximumSize(100L)
.buildAsync((String s) -> { /* <== line 41, exception occurs here */
return UUID.randomUUID();
});
我得到了这个痕迹
com.github.benmanes.caffeine.cache.Caffeine.requireState(Caffeine.java:174) 的线程“main”java.lang.IllegalStateException 中的异常在 com.github.benmanes.caffeine.cache.Caffeine.buildAsync(Caffeine.java :854) 在 com.mycompany.caffeinetest.Main.main(Main.java:41)
如果我将缓存更改为 aLoadingCache
或删除.writer(cacheWriter)
,代码将正常运行。我究竟做错了什么?看来我为这两个对象提供了正确的类型。