Java基础 | 02.反射机制及其应用

1.反射机制

  • 正射:使用这个类之前,我们知道这个类,也知道该类的所有属性和方法。随后我们通过new关键字来实例化对象,并通过引用操作该对象,该过程称之正射。
  • 反射:可以理解为是正射的逆过程。起初并不知道要初始化什么类,而是拿到一个对象,通过反射API来获取这个对象的类对应的java.lang.Class类对象,并通过这个java.lang.Class类对象来访问属性及方法。

综上,反射其实就是我们创建对象过程的逆向过程:

image-20220325001729364

image-20220325001839439

上图表述略有不正确,通过反射API,得到的是一个java.lang.Class类的对象,通过操作这个java.lang.Class类的对象,获取类原本的各种信息

2.获取java.lang.Class对象

假设有一个类,全限定名为"com.xyx_eshang.entity.MyClass",

image-20220325003127999

可以通过下面三种方式来获取java.lang.Class类的对象:

MyClass.class
Class.forName("com.xyx_eshang.entity.MyClass")
new MyClass().getClass()

image-20220325003246358

3.反射的运用——简单工厂模式

假设有接口"com.xyx_eshang.entity.Fruit",

Apple、Orange、Banana…为该接口的实现类,

可以编写一个简单工厂,实现传入实现类的全限定名,来动态生成Fruit对象

image-20220325003821732

接口:Fruit

image-20220325004329092

接口实现类:Apple -> Fruit

image-20220325004355004

工厂类:FruitFactory

image-20220325004127505

启动类:App2

image-20220325004627449

4.反射的运用——加载JDBC驱动

image-20220325004715971

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值