当我将JDK升级到1.8时,我将guava从r09升级到18.0。但是有一个像标题一样的错误。
与方法MapMaker.maximumSize相同的访问限制。
任何人都知道如何解决它。
答案 0 :(得分:1)
MapMaker
的缓存功能并将其移至新的com.google.common.cache
包(see migration guide):
用于表示缓存的核心接口是
Cache
。可以使用CacheBuilder
配置和创建内存中缓存,缓存条目由CacheLoader
加载。使用CacheStats
公开了有关缓存性能的统计信息。
现在MapMaker
充当ConcurrentMapBuilder
没有任何缓存功能,所以你应该使用CacheBuilder
,例如:
Cache<Integer, String> cache = CacheBuilder.newBuilder()
.maximumSize(10000)
.expireAfterWrite(10, TimeUnit.MINUTES)
.build();
请注意,如果要计算值,可以将CacheLoader
传递给build。此外,如果您需要Map
接口进行缓存,则可以使用Cache#asMap()
视图。