Java反射机制

1.反射机制的概念

反射机制指的是程序在运行时能够获取自身的信息。在java中,只要给定类的名字,那么就可以通过反射机制来获得类的所有信息。

2.反射的作用

  • 根据.class文件反编译
  • 通过反射调用类的私有变量,方法,构造函数
  • 动态创建对象和编译

3.反射常用类和方法

反射主要涉及的类:

java.lang.Class;
java.lang.reflect.Constructor;
java.lang.reflect.Field;
java.lang.reflect.Method;
java.lang.reflect.Modifier;

反射过程中常用的方法:

Class c=Class.forName("className"); //根据类名实例化类对象

Object obj=c.newInstance();          //创建对象的实例

Class<?> c = obj.getClass();         //根据对象获得类对象

Field getDeclaredField(String name);  //根据字段名获取的成员变量

Field[] getDeclaredFields();          //获取所有成员变量

getField(String name)                //根据字段名获取的成员变量

Field[] getFields()                  //获取所有成员变量

getDeclaredMethod(String name, Class<?>... parameterTypes)                       //根据方法名和参数获取成员方法

Method[] getDeclaredMethods();      //获取所有成员方法

getMethod(String name, Class<?>... parameterTypes); //根据方法名和参数获取成员方法

Method[] getMethods();              //获取所有成员方法

newProxyInstance(ClassLoader loader, Class<?>[] interfaces, InvocationHandler invocationHandler);  //动态代理方式生成接口对象

invoke(Object receiver, Object... args);  //普通方法调用的反射实现,
//[方法.invoke(对象,参数)] == [对象.方法(参数)]

其中,Declared修饰的方法获取的是类自身声明的所有成员,包含public、protected和private成员。
非Declared修饰获取的方法获取的是类的所有public成员,这就包括自身的所有public成员,和从基类继承的、从接口实现的所有public成员。

4.反射常用实例

1.反射机制获取类对象

Class c1 = Class.forName("Test");

Class c2 = Test.class;

Test test = new Test();
Class c3 = test.getClass();

2.反射机制动态代理生成对象

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值