Java基础 反射获取成员方法

代码示例:
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:给方法的形参传递实际参数
}
 
                    
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号