反射
概念
Reflection(反射) 是 Java 程序开发语言的特征之一,它允许运行中的 Java 程序对自身进行检查,或者说“自审”,也有称作“自省”。反射非常强大,它甚至能直接操作程序的私有属性。主要是底层在用,因为底层只能获取你的.class文件。
借助反射的技术,解析.class文件里的所有内容。并把所有数据封装在工具类Class身上。
反射就像一面镜子,它可以在运行时获取一个类的所有信息,可以获取到任何定义的信息(包括成员变量,成员方法,构造器等),并且可以操纵类的字段、方法、构造器等部分。
为什么需要反射
好好的我们new User(); 不是很好,为什么要去通过反射创建对象呢?
在开发的世界里,spring就是专业的组织,它来帮我们创建对象,管理对象。我们不在new对象,而直接从spring提供的容器中beans获取即可。Beans底层其实就是一个Map<String,Object>,最终通过getBean(“user”)来获取。而这其中最核心的实现就是利用反射技术。
Class工具类
--创建对象
static Class<?> forName(String className)
类名.class
对象.getClass()
暴力反射
指可以将程序中的私有的属性或者方法通过反射技术,暴力的获取到资源,可以获得公开的资源,甚至是私有的资源。暴力反射的方法一般就是在反射的方法上加上Declared这个单词。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。