了解JAVA的反射机制

框架设计的灵魂——反射机制

什么是反射

将类的各个组成部分封装为其他对象的过程就叫做 反射,其中 组成部分 指的是我们类的 成员变量(Field)、构造方法(Constructor)、成员方法(Method)。

使用反射的优缺点

优点

在程序运行过程中可以操作类对象,增加了程序的灵活性;

解耦,从而提高程序的可扩展性,提高代码的复用率,方便外部调用;

对于任何一个类,当知道它的类名后,就能够知道这个类的所有属性和方法;而对于任何一个对象,都能够调用它的一个任意方法。

缺点

 

性能问题:Java 反射中包含了一些动态类型,JVM 无法对这些动态代码进行优化,因此通过反射来操作的方式要比正常操作效率更低。

安全问题:使用反射时要求程序必须在一个没有安全限制的环境中运行,如果程序有安全限制,就不能使用反射。

程序健壮性:反射允许代码执行一些平常不被允许的操作,破坏了程序结构的抽象性,导致平台发生变化时抽象的逻辑结构无法被识别。

Java的所有对象在编译后都完全能确定类型,因此一个class文件被JVM加载后JVM完全知道它的确切类型。

之所以要用反射,是因为你写了一段代码,比如把一个Map.of("name", "Bob")对象变成一个JavaBean,你只知道这个JavaBean得有一个setName(String)方法,但你不知道它的class类型,因为调用方未知,编译阶段,没有class信息,无法编译setName()方法。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值