java反射

1.所有的类都继承Object类,Object中有一个getClass()方法,因此所有的对象都能有调用getClass()方法。

2.Class是什么?

  类在被load到内存后,其实也是一个对象,如abc.class就是一个Class的对象,每个对象都可以调用getClass()方法来获得这个对象,获得这个class对象后就可以通过方法来对这个类进行操作了。同时,Class也有静态方法按照名称把类加载到内存中。

  1)通通过名称把类加载到内从中:

  Class.forName(String name);

  2)有了对象就有了一切!

    有了对象就可以调用getClass()方法获取到class对象

    Class cl = object.getClass();

    有了class对象就可以调用它的方法,比如:

      我想获得这个类的名字:

      cl.getName();

      我想获得这个类的构造方法:Constructor constructor =

                       class.getConstructor(Class[] parameterTypes) ---Class[] parameterTypes 例如:new Class[]{int.class,String.class} 

                     class.getConstructors()

      我想创建一个对象:

              class.newInstance()

              constructor. newInstance(Class[] parameterTypes)

      我想获得这个类的属性:Field field = 

                   class.getField(属性名)

                   class.getFields()

      我想获得或设置这个属性的值:

                    field.get(要获得值的对象)

                    field.set(要设置值的对象)

      我想获得这个类的方法:Method method =

                     class.getMethod(Class[] parameterTypes)

                   class.getMethods()

      我执行这个类的方法:method.invoke(要调用方法的对象,参数...)

 

 

    

posted @ 2014-03-20 19:59  rhythm of the rain  阅读(181)  评论(0)    收藏  举报