谷歌guava cache的getIfPresent和getUnchecked区别

LoadingCache:
    (1)、get(K):使用这个方法要么返回已经缓存的值,要么使用CacheLoader向缓存原子地加载新值。由于CacheLoader可能抛出异常,LoadingCache.get(K)也声明为抛出ExecutionException异常。
            如果你定义的CacheLoader没有声明任何检查型异常,则可以通过 getUnchecked(K) 查找缓存;但必须注意,一旦CacheLoader声明了检查型异常,就不可以调用getUnchecked(K)。

    (2)、getIfPresent(key):从现有的缓存中获取,如果缓存中有key,则返回value,如果没有则返回null


  (3)、getAll(Iterable<? extends K>)方法用来执行批量查询。默认情况下,对每个不在缓存中的键,getAll方法会单独调用CacheLoader.load来加载缓存项。可以通过重写load()方法来提高加载缓存的效率;

おすすめ

転載: blog.csdn.net/sunyufeng22/article/details/121614900
おすすめ