Может ли кто-нибудь помочь мне разобраться в Guava CacheLoader?

Я новичок в библиотеке Google Guava и интересуюсь пакетом Guava Caching. Сейчас у меня скачана версия 10.0.1. После просмотра документации JUnit тестирует исходный код, и даже после тщательного поиска в Google я все еще не могу понять, как использовать пакет Caching. Документация очень короткая, как если бы она была написана для кого-то, кто использовал библиотеку Guava, а не для новичка вроде меня. Я просто хочу, чтобы было больше реальных примеров того, как правильно использовать пакет Caching.

Допустим, я хочу создать кэш из 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. Не мог бы кто-нибудь сказать мне, что я пропустил?

28
задан ColinD 16 October 2011 в 04:28
поделиться