TGViewer
Java Guru 🤓 Java Guru 🤓 @javatasks · 13.1K subscribers
Post #3713 1.15K
Можно ли достать параметры метода рефлекшеном?

По умолчанию – нет. Рефлекшн-информация о параметрах метода представляется объектами класса Parameter. По умолчанию их свойство name синтетическое: "arg0", "arg1", и так далее. Метод isNamePresent при этом возвращает false, что значит что действительная информация об имени недоступна. Она не попадает даже в байт-код.

Начиная с Java 8 у компилятора (javac) появилась опция -parameters. В скомпилированный с этой опцией класс добавляются имена аргументов методов. Parameter#getName() тогда возвращает уже настоящее имя.

Классический пример, когда информация об именах может понадобиться – библиотека JSON сериализации Jackson. Параметры конструктора могут трактоваться ей как поля сериализационной формы.

До появления флага -parameters Jackson использовал для этого аннотации. Каждый параметр снабжался аннотацией
@JsonProperty. Значением аннотации передавалась строка, которая повторяла имя параметра. Эти аннотации затем можно было получить, вызвав Method#getParameterAnnotations().

Полезные ресурсы по Java 👩‍💻| Наш канал в MAX 🟪
  • ❤ 1
More from @javatasks
  1. Oct 13, 2026Post #3928
  2. Oct 13, 2026Post #3927
  3. Oct 13, 2026👩‍💻 Spring Boot под нагрузкой: почему сервис работает локально и падает в production При…
  4. Oct 13, 2026Post #3925
  5. Oct 13, 2026Post #3924
  6. Oct 13, 2026Post #3923
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 →