【Java-反射】

什么是反射?

JAVA反射机制是在运行状态中,创建任意一个类,能获取这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。

实现反射机制需要得到Class对象,每个类在编译时会生成对应字节码的Class,Class类用于表示.class文件

如何获得Class对象:

1.Class.forName(),通过类的完全限定名Class对象

2.类名.class,通过类名的class属性获取class对象

3.对象.getClass(),通过对象的getClass()方法获取Class对象。

反射的主要用途:

1.动态加载类、创建对象

2.调用方法

3.访问成员变量

4.运行时类型信息

Java如何实现反射:

在JDK中,主要由以下类来实现Java反射机制:

反射使用场景举例:

1.使用JDBC连接数据库时,使用Class.forName(),通过反射动态加载数据库驱动类。

2.Spring框架的IOC创建对象以及AOP动态代理都使用反射进行底层实现。

3.MyBatis框架通过反射实现Mapper接口代理对象的创建。

相关推荐
码云数智-园园4 小时前
深入理解与正确实现 .NET 中的 BackgroundService
java·开发语言
田野追逐星光4 小时前
STL中容器list -- 讲解超详细
开发语言·c++·list
好好研究4 小时前
SpringBoot整合SpringMVC
xml·java·spring boot·后端·mvc
千寻技术帮4 小时前
10386_基于SpringBoot的外卖点餐管理系统
java·spring boot·vue·外卖点餐
小邓睡不饱耶4 小时前
使用Scala实现手机号码归属地查询系统
开发语言·windows·scala
diediedei4 小时前
高性能计算通信库
开发语言·c++·算法
曹轲恒4 小时前
SpringBoot整合SpringMVC(末)
java·spring boot·后端
_周游4 小时前
Java8 API 文档搜索引擎_2.索引模块(程序)
java·搜索引擎·intellij-idea
雾岛听蓝4 小时前
C++11新特性(可变参数模板、新的类功能、STL中的一些新变化)
开发语言·c++·经验分享·笔记
小马爱打代码4 小时前
Spring Boot:邮件发送生产可落地方案
java·spring boot·后端