十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
关于Java反射,我们需要弄懂以下几个问题:
创新互联建站是一家集网站建设,墨江企业网站建设,墨江品牌网站建设,网站定制,墨江网站建设报价,网络营销,网络优化,墨江网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。反射是什么?反射有什么用?怎么用反射?
下面我们来一一进行讲解:
一、反射是什么?
Reflection的意思是“反射、映象、倒影”,用在Java身上指的是我们可以于运行时加载、探知、使用编译期间完全未知的classes。换句话说,Java程序可以加载一个运行时才得知名称的class,获悉其完整构造(但不包括methods定义),并生成其对象实体、或对其fields设值、或唤起其methods。
Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性及方法;对于任何一个对象,都能够调用它的任意一个方法;这种动态获取信息以及动态调用对象的方法的功能称为Java的反射机制。
1.自省(Introspection)vs.反射(Reflection)
反射经常和自省弄混,为了区别,我们先看看两者的详细定义:
自省(Introspection):
Introspectionistheabilityofaprogramtoexaminethetypeorpropertiesof
anobjectatruntime.
反射(Reflection):
Reflectionistheabilityofaprogramtoexamineandmodifythestructure
andbehaviorofanobjectatruntime.
从上述定义,我们可以看出,自省是反射的子集。部分语言支持自省,但是不支持反射,比如C++。
2.自省示例vs.反射示例
自省示例:instanceof操作符用于判断一个对象是否属于一个特定的类。
if(obj instanceof Dog) { Dog d = (Dog)obj; d.bark(); }