一、概念
反射:框架是设计的灵魂
框架:半成品软件,可以在框架的基础上进行软件开发,简化代码。
反射:将类的各个部分封装成其他对象,这就是反射机制。
类的成分: 属性,方法,构造器。
java 源文件,--.>字节码文件-->加载到内存中 --->获取Class内容,再将其反射出来
类加载器 --->Classloader
类中:成员变量,成员方法,构造器
<<
成员变量:设置值,获取值, set/get Field [] fields
成员方法 :运行,执行 成员变量, Method [] methods
构造方法: 生成对象 Constructor [] cons >> Class 对象阶段
创建对象 >>运行时阶段
好处:在程序的运行过程中,动态的操作对象,
解耦,提高程序的可扩展性
二、 API
获取Class对象的方式
1.ClassforName (“全类名”):将字节码文件加载进内存,返回Class 对象。
多用于:配置文件,将类名定义在配置文件中,读取文件,加载类
2.类名 .class
多用于参数的传递
3.对象.getClass
多用于对象的获取字节码的方式
*结论:同一个字节码文件(.class)在一次程序运行过程中,只会被加载一次,
不论哪种方式获取的class对象都是一样的
*使用Class对象
获取功能:
1.获取成员变量们
*Field[] getFields()
*Field getField(String name)
*Field[] getDeclaredFields()
*Field getDeclaredField(String name)
2.获取成员方法们
*Method [] getDeclaredMethods()
*Method getDeclaredMethod(String name)
Method [] getDeclaredFields()
Field getDeclaredField(String name)
3. 获取构造方法们
-
-
getDeclaredConstructor(类<?>... parameterTypes)
getConstructors()
getConstructor(类<?>... parameterTypes)
-
4. 获取类的名称
-
-
getName()
本文章 只是 一个 简单的介绍 更多学习和分享 请自行参考 api文档
-