热门关键字:
jquery > jquery教程 > html5 > Java中的反射机制

Java中的反射机制

622
作者:管理员
发布时间:2020/3/27 10:36:44
评论数:0
转载请自觉注明原文:http://www.jq-school.com/Show.aspx?id=1125

  Java中的反射机制

  Android开发中的热修复涉及到反射及类的加载等,因此先回顾一下java的反射,关于反射的定义及作用等引用博客“https://www.cnblogs.com/Eason-S/p/5851078.html”中的话。

  说明:上述链接的标题四中的第【8】条描述有误,已经在留言中指出,详情也可查看本文“反射的例子”的标注说明。

  一、Java反射机制:

  主要是指程序可以访问,检测和修改它本身状态或行为的一种能力,并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义。在java中,只要【给定类的名字】,那么就可以通过反射机制来获得类的所有信息。

  二、作用:

  1、在运行时判断任意一个对象所属的类;

  2、在运行时获取类的对象;

  3、在运行时访问java对象的属性,方法,构造方法等。

  三、优缺点:

  优点:

  1、可以实现动态创建对象和编译,体现出很大的灵活性。

  2、对于JAVA这种先编译再运行的语言来说,反射机制可以使代码更加灵活,更加容易实现面向对象。

  缺点:

  1、对性能有影响。使用反射基本上是一种解释操作,我们可以告诉JVM,我们希望做什么并且它满足我们的要求。这类操作总是慢于只直接执行相同的操作。

  四、反射的应用场景:

  1、该类的某个方法是在高版本新增的,例如MediaRecorder.java在Android6.0以后新增了resume()方法用于暂停后的再次录制,此时项目为了兼容低版本则可以判断当版本>=6.0时调用该

  方法,但是为了能在6.0以下的开发环境中编译通过,可以使用反射调用该方法。----------仅作为例子说明,实际开发中编译环境一般都会超过6.0。

  2、关于Handler机制中消息的同步分隔栏,需要通过postSyncBarrier()设置:该方法属于隐藏方法hide在API23之前,该方法需要通过Looper调用;从API23开始,源码去掉了Looper中的方法,此时只能通过MessageQueue调用;但无论上述哪种,都需要通过反射调用;






如果您觉得本文的内容对您的学习有所帮助:支付鼓励



关键字:html
友荐云推荐