1

Java反射

动态获取这个类的所有信息

反射机制的作用

  1. 反编译:.class-->.java
  2. 通过反射机制访问java对象的属性,方法,构造方法等;

反射机制的应用场景

  1. Jdbc 加载驱动
  2. Spring IOC
  3. 框架

反射机制获取类有三种方法

  1. 第一种
    Class.forName("类全路径");
  2. 第二种
    //java中每个类型都有class 属性.
    类名.class;

  3. 第三种
    //java语言中任何一个java对象都有getClass 方法
    Test t = new Test();
    Classc3 = t.getClass(); //c3是运行时类 (t的运行时类是Test)

反射创建对象的方式

Class<?> forName = Class.forName("类全路径");
// 创建此Class 对象所表示的类的一个新实例 调用了User的无参数构造方法.
Object newInstance = forName.newInstance();
实例化有参构造函数
Class<?> forName = Class.forName("类全路径");
Constructor<?> constructor = forName.getConstructor(String.class, String.class);
User newInstance = (User) constructor.newInstance("123", "123");

API

getDeclaredMethods [] 获取该类的所有方法
getReturnType() 获取该类的返回值
getParameterTypes() 获取传入参数
getDeclaredFields() 获取该类的所有字段
setAccessible 允许访问私有成员
禁止使用反射机制初始化:将构造函数为私有化


lijingyulee
91 声望7 粉丝

« 上一篇
java jvm
下一篇 »
java 设计模式