вопрос отражения java - PullRequest
       6

вопрос отражения java

2 голосов
/ 21 октября 2010

Я пытаюсь решить следующую проблему в раздумьях.У меня есть POJO, который выступает в качестве метаданных для сигнатуры метода в классе TestResponse.TestResponse имеет метод setDate (), который принимает параметр Date.Я пытаюсь сделать это универсальный код, который может принять любой метод и его подпись, чтобы установить в ответе.Я не могу понять, как установить параметр Class при вызове getMethod () на основе входных данных.Входные данные говорят мне, чтобы установить параметр в качестве даты, но не уверен, как этого добиться.

Вот мой пример кода.Конечно, mdi.modifier.getClass () неправильный, поскольку он получит String.class вместо Date.class.

TestResponse response = new TestResponse();
Object val = "test";
MDIBase mdi = new MDIBase("setDate", "Date");
Method m = response.getClass().getMethod(mdi.method, mdi.modifier.getClass());
m.invoke(response, new Object[] { val });

Вот MDIBase

public class MDIBase {
public String method;
public String modifier;
public MDIBase(String method, String modifier){
this.method = method;
this.modifier = modifier;
}

Любые указателивысоко ценится.

Спасибо

1 Ответ

3 голосов
/ 21 октября 2010

Я не уверен, что полностью вас понимаю, но если я это сделаю, вы захотите передать имя класса для параметра?

Для того, чтобы сделать это вместо передачи "Дата "pass in" java.util.Date "(это называется полностью определенным именем класса), а затем вместо getClass call

response.getClass().getMethod(mdi.method, Class.forName(mdi.modifier));

Это будет динамически загружать класс, который имеет полностью квалифицированныйимя, которое вы указали.

Это то, что вы ищете?Если нет, дайте мне больше информации, и я сделаю еще один удар.

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