专业的JAVA编程教程与资源

网站首页 > java教程 正文

Java——反射 暴力反射及其应用场景

temp10 2025-03-19 16:50:47 java教程 12 ℃ 0 评论

框架:半成品软件,可以在框架的基础上进行软件开发,简化编码。

反射:在程序运行状态中,对任意一个类(指的是.class文件),都能够知道这个类所有的属性和方法

Java——反射 暴力反射及其应用场景

将类的各个组成部分封装为其他对象,这就是反射机制

动态获取对象的信息就称为反射。


反射的好处:1、可以在程序运行过程中,操作这些对象。

2、 可以解耦,提高程序的可扩展性。


获取Class对象上的方式:
1、Class.forName("全类名") :将字节码文件加载进内存,返回Class对象;{Java代码编译以及编译之前}{多用于配置文件}

2、类名.Class :通过类名的属性class获取;{类加载器加载进内存}{多用于参数传递}

3、对象.getClass() : .getClass()在Object类中定义{程序运行中}{多用于通过对象获取字节码的方式}

结论

同一字节码文件(*.class)在一次程序运行过程中,指挥被加载一次,无论通过哪一种方式获取的class对象都是同一个。

Class对象的功能:

获取功能:1、获取成员变量2、获取构造方法3、获取成员方法4、获取类名


通过getXxx()方法只能获取被public修饰的成员变量、方法。当需要获取被private protect 默认这三种权限修饰符修饰的变量、方法时 需要忽略访问权限修饰符的安全检查,具体方法为 通过Class对象获取的fieid对象|ConStructe对象|Method对象 的setAccessible(true)方法,这种方法称之为暴力反射


因为在项目中用到反射,最深的体会是 技术重要,但是应用场景也是非常重要的

应用场景:项目中关于系统的一些(静态)参数定义在一个类中,当在程序运行时动态修改这些参数后,需要应用于系统而不必去重新打包、发版,因而反射在这里就显得非常好用。





Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表