Продвинутый Java-совет: используйте `ClassValue`
Продвинутый 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 Библиотека | Мы в Телеграм