Spring MVC底层的简单实现(2)

import java.lang.reflect.Field;
import java.lang.reflect.Method;
public class InvokeHandle {
    public static void callMethod(String className,String methodName){
        try {
            Object obj=Class.forName(className).newInstance();
            Class cls=obj.getClass();
  System.out.println("父类是:"+cls.getSuperclass().getName());
            //得到这个类的属性变量
            Field[] fields=cls.getDeclaredFields();
            System.out.println("成员变量有:");
            for(Field f:fields){
                System.out.println(f.getName()+" *** ");
            }
            System.out.println("=====================");
            Method[] methods=cls.getDeclaredMethods();
            System.out.print("方法有:");
            for(Method method:methods){
                System.out.println(method.getName()+" ");
            }
            System.out.println("=====================");
            Method targetMethod=cls.getMethod(methodName,null);
            targetMethod.invoke(obj);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

写一个简单的方法:
public class DepartService {
    public void getDepartById(){
        System.out.println("我通过id得到部门");
    }
}

写一个学生类测试一下:
public class StudentTest {
                                                         
    public static void main(String[] args) {
        //传统的调用方法
        Student student=new Student();
        student.setUsername("afei");
        student.test();
        System.out.println();
        InvokeHandle.callMethod("service.DepartService","getDepartById");
    }
}

有写的不好的地方请多交流。
希望对你们有帮助!!!

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/990c4b5fdf83d52a4c278690584497e3.html