反射

来源:互联网 发布:淘宝网看手机 编辑:程序博客网 时间:2024/06/06 07:33

通过反射查看类信息

一、获取Class对象

在Java程序中获得class对象通常有如下三种方式:

   1、使用Class类的forName()静态方法。该方法需要传入字符串参数,该字符串参数的值是某个类的全限定类名(必须添加完整包名)

   2、调用某个类的class属性来获取该类对应的Class对象。

   3、调用某个对象的getClass()方法。

二、从Class中获取信息

   1、构造器   getConstructors()

   2、方法       getMethods()

   3、成员变量  getFields()

   4、内部类    getDeclaredClasses()

例子:clazz.getMethod("方法名",String.class)  第一个是方法名,第二个是指定的形参类型列表

使用反射生成并操作对象

一、创建对象

通过反射来生成对象有如下两种方式:

  1、使用Class对象的newInstance()方法来创建该Class对象对应类的实例,这种方式要求该Class对象的对应类有默认构造器。

   2、先使用Class对象获取指定的Constructor对象,再调用Constructor对象的newInstance()方法来创建该Class对象对应类的实例。

如果不想利用构造器来创建Java对象,而想利用指定的构造器来创建Java对象,则需要利用Constructor对象,每个Constructor对应一个构造器。步骤:

   1、获取该类的Class对象

   2、利用Class对象的getConstructor()方法来获取指定的构造器

  3、调用Constructor的newInstance()方法来创建Java对象

二、调用方法

Object invoke(Object obj, Object...args)

调用该方法后要记得setAccessible(true)

0 0
原创粉丝点击