Java отражение не работает должным образом - PullRequest
0 голосов
/ 18 августа 2011

У меня есть такой код

final Method method = XYZClass.class.getDeclaredMethod(METHOD_NAME, new Class[] {List.class, List.class});
 method.setAccessible(true);
final List<Integer> output = (List<Integer>) method.invoke(METHOD_NAME, new Object[] {inputRecords, foo});

inputRecords - это список объектов, а foo - это объект.

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

1 Ответ

4 голосов
/ 18 августа 2011

Вы пытаетесь вызвать метод для имени вашего метода (то есть строка). Вы должны вызывать его для ссылки на экземпляр XYZClass:

XYZClass xyz = ...;
final List<Integer> output = (List<Integer>) method.invoke(xyz,
                                     new Object[] {inputRecords, foo});

Если это статический метод, используйте null в качестве первого аргумента.

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