java反射机制

一、反射机制是指在运行状态中,对于任何一个类,都能够知道这个类的属性和方法;对于任何一个对象,都能调用他的属性的方法。

二、反射提供的功能:

  在运行时判断任意一个对象所属的类

在运行时构造任意一个类的对象

在运行时判断任意一个类所具有的成员变量和方法

在运行时调用任意一个对象的方法

生成动态代理

 

三、通过反射获取类的三种方法:

  1. 通过Class.forName();    Class<?> forName = Class.forName("reflectt.Person"); 需要抛个ClassNotFoundException 异常
  2. 通过   类名.Class  Class<?> forName = Person.Class
  3. 通过对象.getClass( ),此方法需要NEW一对象出来

  Person person = new Person();Class<?> forName =person.getClass( )

四、反射获取方法:
1.对象.getMethods() 此方法可以获取所有的公共的方法(本类,父类(包括object中的方法),以及接口中的所有方法,同时符合访问修饰符规律(private访问不到))
Class<?> forName = Class.forName("reflectt.Person"); forName .getMethods ( );

  1. 对象.getDeclareMethods() 来获取当前类所有方法 不加s是获取当前类的指定方法
  2. 反射来带对类实例化

类名 对象名=(类名)反射类对象的.newInstance();

Person person=(Person)forName .newInstance();

person.getMethods();

补充:get Declare xxx为当前类的所有属性

  1. 通过getInterface()方法获得所有接口 ,返回一个数组(多实现)
  2. 通过getSuperclass()来获取所有父类,返回单个值(单继承)
  3. 通过getConstructors(),来获取所有构造方法,返回数组
  4. 通过getFields()来获取所有公共属性,通过getDeclareFields()来获取当前类的所有属性,返回数组
  5. 通过getconstructors()来获取构造方法(一般获取后,在进行实例化)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值