@light___soul
Full Stack Middle Web Developer

Рефлексия в Java. Как получить метод из параметра (@Autowired) или как из Field достать значение параметра?

Есть динамичный Field
Field field = this.getClass().getDeclaredField("dict" + name + "Repository");

Как получить метод save из него?
Не работает

Method saveMethod = field.getClass().getMethod("save", dict.getClass());

  • Вопрос задан
  • 107 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Java
Седой и строгий
field.getClass() вернёт класс Field, у которого нет метода save. Метод нужно искать в том классе, тип которого имеет поле, а вызывать этот метод на значении поля.

Example obj = new Example();

Field field = obj.getClass().getDeclaredField("dict" + name + "Repository");
SomeClass fieldValue = (SomeClass) field.get(obj);

Method method = fieldValue.getClass().getDeclaredMethod("save", dict.getClass());
Object returnValue = method.invoke(fieldValue, someArgOfTypeDict);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
King Bird Studio Москва
До 180 000 руб.
XCritical Software Санкт-Петербург
от 150 000 до 220 000 руб.
СберЛогистика Москва
от 170 000 руб.
23 сент. 2019, в 17:03
400 руб./в час
23 сент. 2019, в 16:45
3000 руб./за проект
23 сент. 2019, в 16:43
30000 руб./за проект