Я работаю с основами отражения Java и наблюдает информацию о методах классов. Мне нужно получить метод, соответствующий спецификациям, описанным функцией getMethod(). Однако, когда я это делаю, я получаю исключение NoSuchMethodException, и я надеялся, что вы скажете мне, почему моя реализация неверна.Java Reflection, getMethod()
static void methodInfo2(String className) throws ClassNotFoundException,
NoSuchMethodException{
Class cls = null;
try{
cls = Class.forName(className);
} catch(ClassNotFoundException e){
e.printStackTrace();
}
System.out.println("Cls: "+cls);
Method method1 = cls.getMethod("test", null);
System.out.println("method1: "+method1);
}
EDIT1: Когда я распечатать "Cls:" + ЦБС, выход "Клс: класс a8.myclass2". Почему он добавляет часть класса? (a8 правильно, поэтому не беспокойтесь об этом)/EDIT1
Это функция, которую я использую для чтения в классе из моей основной функции, а затем я хочу getMethod() с параметрами «test» и null, где «test» - это имя метода, а null означает, что метод не имеет параметров. Класс Читаю в называется myclass2, который находится здесь:
package a8;
public class myclass2 {
void test(){
//"takes no parameters"
//"returns bool"
//"name starts with test"
//return true;
}
}
Как вы можете видеть, метод делает Infact существует в классе. Если бы вы могли указать на мою ошибку, я был бы очень признателен.
Это так, и вы избили меня до него. +1 Из JavaDoc для 'getMethod()': "Возвращает объект Method, который отражает указанный ** открытый метод-член класса или интерфейса, представленный этим объектом класса." –
Спасибо :) Это сработало – Nibirue