Использование кеша гуавы без функции загрузки
У моего java-приложения есть кеш, и я бы хотел поменять текущую реализацию кеша и заменить его на кеш гуавы.
К сожалению, использование кэша моего приложения не похоже на то, как работает кеш guava. Все, что я хочу - это иметь возможность создавать пустой кеш, читать элемент из кеша методом get и сохранять элемент в кеше методом put. Я не хочу, чтобы вызов get пытался добавить элемент в кеш.
Кажется, что класс LoadingCache имеет методы get и put, которые мне нужны. Но у меня возникают проблемы с выяснением, как создать кеш без предоставления функции "загрузки".
Моя первая попытка была такая:
LoadingCache<String, String> CACHE = CacheBuilder.newBuilder().build();
Но это вызывает ошибку компилятора: несовместимые типы; нет экземпляра (ов) переменной типа (ов) K1,V1 существует, поэтому Cache соответствует LoadingCache
Видимо, я должен передать в CacheLoader, который имеет метод "загрузки".
(Полагаю, я мог бы создать CacheLoader, у которого есть метод load, который просто генерирует исключение, но это кажется странным и неэффективным. Это правильно?)
1 ответ
CacheBuilder.build()
возвращает не загружающийся кеш. Как раз то, что вы хотите. Просто используйте
Cache<String, String> cache = CacheBuilder.newBuilder().build();