代码示例:
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:给方法的形参传递实际参数
}
标签:反射,Java,setName,System,获取,println,方法,out From: https://www.cnblogs.com/gagaya2/p/17798750.html