Java反射
动态获取这个类的所有信息
反射机制的作用
- 反编译:.class-->.java
- 通过反射机制访问java对象的属性,方法,构造方法等;
反射机制的应用场景
- Jdbc 加载驱动
- Spring IOC
- 框架
反射机制获取类有三种方法
- 第一种
Class.forName("类全路径"); 第二种
//java中每个类型都有class 属性.
类名.class;- 第三种
//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 允许访问私有成员
禁止使用反射机制初始化:将构造函数为私有化
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。