Java基础 反射获取成员方法

发布时间 2023-10-30 20:40:00作者: 嘎嘎鸭2

 

代码示例:

public static void main(String[] args) throws Exception {
//获取class字节码文件对象
Class clazz = Class.forName("pojo.Student");

//获取所有的方法(getMethods()还能连着父类的所有的公共方法一起获得,但getDeclaredMethods()不能获取父类里面的方法)
Method[] methods = clazz.getDeclaredMethods();
for (Method method : methods) {
System.out.println(method);
}

//获取单个方法
Method m = clazz.getDeclaredMethod("setName", String.class);//参数1:方法的名字 参数2:方法形参的类型
System.out.println(m);

//获取setName方法的名字
String name = m.getName();
System.out.println(name);

//获取setName方法的形参
Parameter[] parameters = m.getParameters();
for (Parameter parameter : parameters) {
System.out.println(parameter);
}

//把setName方法运行起来
//1.先写方法的调用者
Student stu = new Student();
//2.让方法运行起来(o是方法的返回值,如果方法没返回值可以不用管)
Object o = m.invoke(stu, "李四");//参数1:方法的调用者 参数2:给方法的形参传递实际参数
}