Есть некоторое действие, которые вызывается пользователем. Нужно сделать так, чтобы это действие можно было юзать раз в N секунд. Для реализации я решил использовать com.google.common.cache.LoadingCache
.
private static final LoadingCache<String, Boolean> cache = CacheBuilder.newBuilder()
.expireAfterWrite(10, TimeUnit.SECONDS)
.maximumSize(50)
.build(new CacheLoader<String, Boolean>() {
@Override
public Boolean load(@Nonnull String name) throws Exception {
return true;
}
});
public static Boolean get(String name) {
return cache.getIfPresent(name);
}
Т.е. вызов метода get
будет всегда возвращать мне true в случае, если ключ присутствует в кэше, а иначе null. Как можно заменить из создания LoadingCache
-> expireAfterWrite(N, TimeUnit.SECONDS)
внесённые данные будут удаляться спустя N секунд после добавления их туда. Мне не нравится то,что я везде таскаю за собой не нужный boolean, есть ли такой же "автоматический" кэш для одного значения? Если нет, то как лучше улучшить текущий код?
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
заранее извиняюсь за столь общий и размытый вопросСобираемся писать приложение (некоммерческое) для платформы Android, хотим прикрутить к нему...
Ввожу команду и она пишется в репозиторий, и в бдid: 1 name:
Допустим у меня есть байт, и в нем я хочу хранить 8 boolean'овКак мне читать и записывать отдельные биты в байт? Пожалуйста без битсета, я хочу понять...
Есть 2 блока которые на больших экранах нужно отобразить в один ряд с выравниванием содержимого по левому краю, а на маленьких в два ряда и с выравниванием...