@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());

  • Вопрос задан
  • 121 просмотр
Решения вопроса 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);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы