JAVA的反射
引言:
在学习JAVA的时候,总会感觉基础学的不是很扎实,但是却不会引起你的重视,你会认为后面用的多了慢慢的就会了。但是当你在工作的时候你就会发现,无论你进的是大厂,还是小厂,基础才是重中之重。当你的基础足够扎实的时候,那么无论你们用的是什么框架,你都可以很快上手。那么今天在这里先给大家说一下在工作中非常常用的反射机制。
一、反射是什么
Java反射指的是在运行状态时,能够获取类的属性和方法或者修改类运行时行为的过程。在运行状态中,对于任意一个类,都能够获取到这个类的所有属性和方法,对于任意一个对象,都能够调用它的任意一个方法和属性(包括私有的方法和属性),这种动态获取的信息以及动态调用对象的方法的功能就称为java语言的反射机制。通俗点讲,通过反射,该类对我们来说是完全透明的,想要获取任何东西都可以。
想要使用反射机制,就必须要先获取到该类的字节码文件对象(.class),通过字节码文件对象,就能够通过该类中的方法获取到我们想要的所有信息(方法,属性,类名,父类名,实现的所有接口等等),每一个类对应着一个字节码文件也就对应着一个Class类型的对象,也就是字节码文件对象。
方法一:Class.forName(“全类名”)
将字节码文件加载进内存,返回Class对象,多用于配置文件,将类名定义在配置文件中。读取文件,加载类
方法二:类名.class:
通过类名的属性class获取,多用于参数的传递
方法三:对象.getClass()
getClass()方法定义在Object类中,多用于对象的获取字节码的方式
备注:同一类的Class字节码文件对象是唯一的,三种方式返回结果完全一致
示例: