JAVA反射机制,获取JAVA类的成员信息

Java中的反射机制,使得我们可以在运行期获取Java类的字节码文件中的构造函数,成员变量,成员函数等信息。

1. 获取Class对象的三种方式:

  1. Class.forName(“类名字符串”)(注意:类名字符串必须是全称,包名+类名)
		Class baseInfo = Class.forName("top.sguotao.ReflectionJava");
  1. 类名.class
		Class object = Object.class;
  1. 实例对象.getClass()
		Class date = (new Date()).getClass();
		Class testclass = this.getClass();

2. 获取类的构造函数Constructor:

  1. 获取参数列表是parameterTypes,访问控制符是public的构造函数
		public Constructor getConstructor(Class[] parameterTypes)
  1. 获取所有访问控制符是public的构造函数
		public Constructor[] getConstructors()
  1. 获取参数列表是parameterTypes,并且是类自身声明的构造函数,访问控制符包含public、protected和private的函数。
		public Constructor getDeclaredConstructor(Class[] parameterTypes)
  1. 获取类自身声明的全部的构造函数,访问控制符包含public、protected和private的函数。
		public Constructor[] getDeclaredConstructors()
  1. 如果类声明在其它类的构造函数中,返回该类所在的构造函数,如果存在则返回,不存在返回null
		public Constructor getEnclosingConstructor()

3. 获取类的成员变量

  1. 获取“名称是name”的public的成员变量(包括从基类继承的、从接口实现的所有public成员变量)
		public Field getField(String name)
  1. 获取全部的public成员变量(包括从基类继承的、从接口实现的所有public成员变量)
		public Field[] getFields()
  1. 获取“名称是name”,并且是类自身声明的成员变量,包含public、protected和private成员变量。
		public Field getDeclaredField(String name)
  1. 获取全部的类自身声明的成员变量,包含public、protected和private成员变量。
		public Field[] getDeclaredFields()

4. 获取类的成员函数

  1. 获取函数名是name,参数是parameterTypes的public的函数(包括从基类继承的、从接口实现的所有public函数)
		public Method getMethod(String name, Class[] parameterTypes)
  1. 获取全部的public的函数(包括从基类继承的、从接口实现的所有public函数)
		public Method[] getMethods()
  1. 获取函数名name,参数是parameterTypes,并且是类自身声明的函数,包含public、protected和private方法。
		public Method getDeclaredMethod(String name, Class[] parameterTypes)
  1. 获取全部的类自身声明的函数,包含public、protected和private方法。
		public Method[] getDeclaredMethods()
  1. 如果这个类是其它类中某个方法的内部类,调用getEnclosingMethod()就是这个类所在的方法;若不存在,返回null。
		public Method getEnclosingMethod()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值