2013-10-03 4 views
0

Я пытаюсь использовать отражение для вызова частного метода в одном из моих классов, который также принимает параметр Map.Как вызвать частный метод, который принимает карту как входной параметр, используя Reflection?

Ниже метод, который я должен позвонить, и ниже метода заключается в ReflectionTest:

private static Map<String, String> storageSort(final List<Map<String, String>> employeeList) { 

} 

Я звоню выше метод, как это:

ReflectionTest io = new ReflectionTest(); 
Method m = ReflectionTest.class.getDeclaredMethod("storageSort", Map.class); 
m.setAccessible(true); 
Object o = m.invoke(io, sortList); 

Но ниже является исключением Я получаю каждый раз:

java.lang.NoSuchMethodException: com.reflecti on.test.ReflectionTest.storageSort (java.util.Map)

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

+3

Метод принимает параметр «Список». –

+0

Изменить 'Map.class' на' List.class'? –

+0

@SotiriosDelimanolis сделайте это ответом. Я буду перенаправлять вас :-D – Thihara

ответ

5

Ваш метод явно принимает параметр List.

Method m = Main.class.getDeclaredMethod("storageSort", List.class); 
+1

Хотя это действительно ответ, я поражен тем, как люди даже не хотят читать свой собственный код = \ –

+3

@LuiggiMendoza Ironic, так как вы, вероятно, не читали этот комментарий, прежде чем отправили его. : P –

+0

@JoshM, который комментирует? –

Смежные вопросы