Java反射机制的用法



Java的反射机制允许你在程序运行的过程中获取类定义的细节。有时候在程序运行的时候才得知要调用哪个方法,这时候反射机制就派上用场了。


获取类

类的获取方法有以下几种:

  •    forName()。通过Class.forName()获取与字符串向对应的类。比如\lstinline{Class.forName("java.lang.String");}。
  •    getClass()。每个对象都有这个方法。比如\lstinline{Foo foo; ...; foo.getClass();}。
  •    类名.class。直接通过类名获取这个类的反射对象。比如String.class。
  •    基本类型的类。比如Integer.TYPE。这种方法与Integer.class是由区别的。一个是基本类型(Primitive type),一个是复合类型(Composition)。

获取构造函数

获取构造函数由以下几种方法:

  •    getConstructor(Class[] params)。获取公共的构造函数。
  •    getConstructors()
  •    getDeclaredConstructor(Class[] params)。获取所有构造函数。
  •    getDeclaredConstructors()


获取构造函数之后可以通过newInstance生成一个新的实例。


获取字段

获取字段的方法有以下几种:
  •    getField(String name)。获取公共的字段。
  •    getFields()。
  •    getDeclaredField(String name)。获取所有的字段。
  •    getDeclaredFields()

获取字段之后可以通过getDouble getInt等方法获取变量的值,也可以通过setDouble setInt等方法给变量赋值。


获取成员方法

获取方法的方法有以下几种:

  •    getMethod(String name, Class[] params)。获取公共的方法。
  •    getMethods()
  •    getDeclaredMethod(String name, Class[] params)。获取所有的方法。
  •    getDeclaredMethods()


获取成员方法之后可以调用invoke方法执行该方法。


数组


数组也是一个特殊的类型,因此Java中提供了java.lang.reflect.Array实现数组的动态操作。创建一个数组可以调用newInstance(type, count)方法,获取一个元素可以通过get(array, index)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值