Как создать экземпляр в Java, когда у нас есть объект типа Class - PullRequest
0 голосов
/ 05 мая 2020

В настоящее время я работаю над использованием аннотаций в моем приложении Spring Boot. Где я получаю успешный класс аннотации следующим образом:

Class s = applicationContext.getType(beanName);

После чего я также могу получить аннотированный метод (с некоторыми проверками if)

Method[] methods = s.getMethods();

Я хотел бы вызвать конкретный метод

Object result = method.invoke(?, args);

Однако подпись вызова требует экземпляра переданного ему класса. Я не уверен, как получить экземпляр или объект этого класса?

enter image description here

1 Ответ

2 голосов
/ 05 мая 2020

На самом деле вам не нужен экземпляр Class: вам нужен либо фактический экземпляр, на котором должен быть вызван метод (если это метод экземпляра), либо null (если это stati c метод).

Не совсем понятно, что вы собираетесь делать, но если method - метод экземпляра, вам понадобится экземпляр s, для которого он будет вызван. Если s имеет конструктор без аргументов, вы можете сделать

Object result = method.invoke(s.getConstructor().newInstance(), args);

Для конструкторов с другими подписями укажите тип параметров getConstructor() и значения параметров newInstance() .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...