Я пытаюсь вызвать метод process
в классе образца модели, используя отражение в Java. Этот метод принимает карту строки и строки и возвращает обратно ту же самую вещь, карту строки и строки.Вызов метода с использованием отражения и возврата назад карты
Ниже мой код, но почему-то он дает мне исключение каждый раз.
Map<String, String> test = new LinkedHashMap<String, String>();
try {
test.put("CGUID", "ABCD");
test.put("RESOURCEINDEX", "XYZ");
Method m = SampleModel.class.getDeclaredMethod("process", Map.class);
Object o = m.invoke(null, test);
}
Это дает Object o = m.invoke(null, test);
линии-я Null Pointer Exception
всегда.
Может ли кто-нибудь помочь мне, что плохого я здесь делаю?
Ниже является метод signature-
@Override
public Map<String, String> process(final Map<String, String> attributes) {
Map<String, String> newData = new LinkedHashMap<String, String>();
for (Map.Entry<String, String> entry : attributes.entrySet()) {
StringBuilder sb = new StringBuilder();
sb.append(entry.getValue()).append("$$$$").append(UUID.randomUUID().toString());
newData.put(entry.getKey(), sb.toString());
}
return newData;
}
Обновление: -
Class<SampleModel> consClass = SampleModel.class;
Map<String, String> test = new LinkedHashMap<String, String>();
try {
test.put("CGUID", "ABCD");
test.put("RESOURCEINDEX", "XYZ");
Method m = SampleModel.class.getDeclaredMethod("process", Map.class);
Object o = m.invoke(consClass, test);
}
Приведенный выше код также не работает? Это дает мне исключение как-
object is not an instance of declaring class
Является ли 'M' нуль? Как выглядит подпись 'process'? –
Я только что обновил вопрос .. no m is not null .. – AKIWEB