TGViewer
Java библиотека Java библиотека @javalib · 30.6K subscribers
Post #7679 1.65K
Продвинутый Java-совет: используйте `ClassValue`

Если нужно кешировать метаданные отдельно для каждого класса, не обязательно создавать ConcurrentHashMap<Class<?>, Metadata>.

private static final ClassValue<Metadata> CACHE =
new ClassValue<>() {
@Override
protected Metadata computeValue(Class<?> type) {
return scan(type);
}
};

Metadata metadata = CACHE.get(MyClass.class);


ClassValue лениво вычисляет значение, безопасно работает при конкуренции потоков и хранит отдельный результат для каждого Class. Сбросить кеш можно через remove().

Полезно для reflection, сериализации, мапперов и собственных фреймворков.

Полезные ресурсы по Java 👩‍💻| Наш канал в MAX 🟪
  • 👍 3
  • 🔥 1
More from @javalib
  1. Sep 27, 2026👩‍💻 Как сделать Java-сервис устойчивее к сбоям Resilience4j добавляет готовые паттерны C…
  2. Sep 27, 2026Java: используйте Deque вместо Stack для работы по принципу LIFO («последним пришёл — перв…
  3. Sep 26, 2026Post #7686
  4. Sep 26, 2026Spring Boot 4: как перенести старые настройки При обновлении добавьте временную зависимост…
  5. Sep 26, 2026Post #7684
  6. Sep 26, 2026👩‍💻 Миграция на Spring Boot 4, Spring 7 и JDK 25 В статье автор на примере демо-проекта…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →