Полагаю, это немного зависит от реализации JVM.Но на примере Oracle JVM он поддерживает кэш всех аннотаций для экземпляров метода и поля, что эквивалентно подходу карты, о котором вы говорите.
Но здесь есть одна загвоздка;поскольку экземпляры метода / поля уникальны для каждого объекта, в случае, если вы в конечном итоге создадите много объектов для данного класса, вы в значительной степени потеряете предлагаемое преимущество в производительности.В этом случае статическая карта имени класса + имя метода / имя класса + имя поля с соответствующим списком аннотаций превосходит используемый встроенный подход к кэшированию.
Кстати, как вывычислять карту?Это делается при запуске приложения или какой-то автоматически сгенерированный код?Вы действительно подтвердили, что в вашем случае безопасно кэшировать экземпляры аннотаций?
Как всегда, для таких вопросов лучшее решение - это профилировать / измерять с приложением на линии и идти с решением, котороевыглядит как победа в данном случае использования.