gpt4 book ai didi

Java 反射,getMethod()

转载 作者:行者123 更新时间:2023-12-04 20:39:07 29 4
gpt4 key购买 nike

我正在研究 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: class a8.myclass2”。为什么要附加类部分? (a8 是正确的,所以不用担心)/EDIT1

这是我用来从我的主函数中读取一个类的函数,然后我想使用参数“test”和 null 来获取 getMethod(),其中“test”是方法的名称,null 表示方法没有参数。我正在阅读的类(class)称为 myclass2,它位于此处:

package a8;

public class myclass2 {

void test(){
//"takes no parameters"
//"returns bool"
//"name starts with test"
//return true;
}

}

如您所见,该方法确实存在于类中。如果您能指出我的错误,我将不胜感激。

最佳答案

公开您的测试方法。我相信 Class.getMethod() 仅限于公共(public)方法。

关于Java 反射,getMethod(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8360510/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com