Я работаю с основами рефлексии Java и наблюдаю за информацией о методах классов.Мне нужно получить метод, который соответствует спецификациям, как описано функцией getMethod ().Однако, когда я делаю это, я получаю NoSuchMethodException, и я надеялся, что вы могли бы сказать мне, почему моя реализация неверна.
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:" + cls, вывод"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;
}
}
Как вы видите, метод действительно существует в классе.Если бы вы могли указать на мою ошибку, я был бы очень признателен.