TGViewer
Java Java @javatg · 16.7K subscribers
Post #2346 1.79K
⚡️Продвинутый 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 #JavaTips #Backend
  • 🔥 5
  • ❤ 2
  • 🎉 2
  • 👍 1
More from @javatg
  1. Oct 1, 2026⚡️ Spring Boot 4 убрал статус WILL_EXPIRE_SOON: проверьте мониторинг сертификатов В Spring…
  2. Sep 28, 2026💡 Java: не создавайте тяжёлые объекты раньше времени Если объект дорогой в создании, но н…
  3. Sep 24, 2026Kotlin 2.5.0-Beta1 вышел JetBrains выпустила первую бета-версию Kotlin 2.5.0. Главное: - L…
  4. Sep 23, 2026Spring Boot 4: как перенести старые настройки При обновлении добавьте временную зависимост…
  5. Sep 23, 2026⚡️⚡️Joker 2026: что происходит с профессией разработчика Индустрия разработки проходит чер…
  6. Sep 22, 2026🚀 Anthropic представила Claude Opus 5.5 Новая флагманская модель стала сильнее Opus 5, пр…
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 →