今日份反射总结

反射

反射:就是程序在运行时,对于任意一个类,我们都能知道这个类的属性和方法,对于任和一个对象,我们也都能调用它的方法与属性,程序运行时动态的获取类和对象的信息。

反射的原理

JVM从磁盘上加载类.class字节码文件,然后通过字节码文件生成一个Class对象,然后调用类中的属性和方法;

反射的创建

1.new一个对象,然后用对象.getclass()进行获取Class对象
2.直接用类.class()来生成Class()对象
3.通过执行Class.forname()方法来生成Class对象

创建实例

1.Class对象.newInstance
2.通过Class对象晦气指定的Constructor对象,在通过构造器创建实例

反射的作用

1.可以越过泛型检查。如;当链表的泛型为String时,我们在链表中加入一个int型的数,在编译时就会报错;此时我们可以使用反射获取链表的class对象,然后在通过class对象调用它的add()方法,在向其中加入int类型的数字就可以了
2.运行配置文件;假设多个类中有一个相同的方法,每次都需要重新创建一个类对象,然后通过对象去调用,就会很繁琐。这时可以通过反射直接运行配置文件就可以。

反射的缺点

反射比直接调用更复杂,效率比直接调用低。
在普通程序中不建议使用反射。
需要在无安全限制的情况下使用反射。

反射的优点

灵活性好,扩展性好,降低耦合;
允许程序创建和控制任何类的对象,无需提前硬编码目标类;
破坏代码的逻辑性和可移植性。平台发生改变,代码行为就会发生改变。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值