Я новичок в библиотеке Google Guava и интересуюсь пакетом Guava Caching. В настоящее время я загружаю версию 10.0.1. Просмотрев документацию, JUnit тестирует исходный код и даже после долгого поиска google, я все еще не могу понять, как использовать пакет Caching. Документация очень короткая, как если бы она была написана для тех, кто использовал библиотеку Guava не для новичков вроде меня. Я просто хочу, чтобы были примеры реальных реальностей о том, как правильно использовать кеширующий пакет.
Предположим, что я хочу создать кеш из 10 неисчерпаемых предметов с методом вытеснения с наименьшим использованием (LRU). Итак, из примера, найденного в api, я создаю свой код следующим образом:
Cache<String, String> mycache = CacheBuilder.newBuilder()
.maximumSize(10)
.build(
new CacheLoader<String, String>() {
public String load(String key) throws Exception {
return something; // ?????
}
});
Поскольку CacheLoader требуется, я должен включить его в метод сборки CacheBuilder. Но я не знаю, как вернуть правильное значение из mycache.
Чтобы добавить элемент в mycache, я использую следующий код:
mycache.asMap().put("key123", "value123");
Чтобы получить элемент из mycache, я использую этот метод:
mycache.get("key123")
Метод get всегда будет возвращать возвращаемое мной значение из метода загрузки CacheLoader вместо получения значения из mycache. Может кто-нибудь любезно рассказать мне, что я пропустил?