try {
    //1.根据类的完整路径获取 
       Class claz1 = Class.forName("org.bruce.base.BaseDaoImpl");

    //2.把类引入当前java类,通过 "类.class"获取 
       Class claz2 = BaseDaoImpl.class;

    //3.new一个对象,通过对象的实例获取 
    BaseDaoImpl bi = new BaseDaoImpl();  
       Class claz3 = bi.getClass();

    //创建实例
       Object obj = claz1.newInstance();

    //Class所涉及到的东西:

      //1.类的名称

    claz1.getName();

    claz1.getSimpleName();

      //2.类的构造函数

    claz1.getConstructors();

    claz1.getConstructor(String.class,Integer.class);//根据构造函数参数类型和个数获取构造函数

      //3.类的修饰符  
    claz1.getModifiers();

      //4.类的属性

    claz1.getFields();

    claz1.getDeclaredFields();

    claz1.getDeclaredField("属性名,比如:username");

      //5.类的方法

    claz1.getMethods();

    claz1.getDeclaredFields();

    claz1.getDeclaredMethod("set", String.class);

    //Field涉及的东西:

       Field f =claz1.getDeclaredField("uname");

    //1.属性名称 
    f.getName();  
    //2.属性的值类型(String,int,long等)
     f.getType();

    //Method涉及的东西:  
       Method m =claz1.getDeclaredMethod("getName");

    //1.方法名称
      m.getName();
    //2.执行方法(invoke)

     m.invoke(obj, args);      
 } catch (Exception e) {      
    e.printStackTrace();      
 }
文章目录

Sides

IT技术分享博客