粗浅看java反射机制-编程开发技术

粗浅看java反射机制-编程开发技术

ID:30920954

大小:258.96 KB

页数:25页

时间:2019-01-04

粗浅看java反射机制-编程开发技术_第1页
粗浅看java反射机制-编程开发技术_第2页
粗浅看java反射机制-编程开发技术_第3页
粗浅看java反射机制-编程开发技术_第4页
粗浅看java反射机制-编程开发技术_第5页
资源描述:

《粗浅看java反射机制-编程开发技术》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、粗浅看java反射机制-编程开发技术粗浅看java反射机制原文出处:吴士龙Jave?反射是Java被视为动态(或准动态)语言的一个关键性质。这个机制允许程序在运行时透过RcflcctionAPIs取得任何一个已知名称的class的内部信息,包括其modifiers(诸如public,static等)、superclass(例如Object)、实现之interfaces(例如Cloneable),也包括fields和methods的所有信息,并可于运行吋改变fields内容或唤起methods。Java反射机制容许程序在

2、运行时加载、探知、使用编译期间完全未知的classcso换言Z,Java可以加载一个运行时才得知名称的class,获得其完整结构。JDK中提供的ReflectionAPIJava反射相关的APT在包?java.lang,reflect?中,JDK1.6.0的reflect包如下图:iava.lana.refloct»□Annot^teciEfementGenerfcArravTvoePaFametenzed丁yoeWi烘gnfType真Acce$$iDleO0ectConstructorMethoaModifierPr

3、oxyREnEcrPEnrussionInvocationT3rqetExceptionMartormEaParamEtenzeaTyoeExcepticinUndeclareaThrcwableExceotion错误GeneriiSiqnatureFormatErrorMember接II该接I【可以获取有关类成员(域或者方法)后者构造函数的信息。AccessibleObject类该类是域(field)对象、方法(method)对象、构造函数(constructor)对象的基础类。它提供了将反射的对象标记为在使用时取消

4、默认Java语言访问控制检查的能力。Array类??提供动态地生成和访问JAVA数组的方法。Constructor类??捉供一个类的构造函数的信息以及访问类的构造函数的接口。Field类????提供一个类的域的信息以及访问类的域的接口。Method类???提供一个类的方法的信息以及访问类的方法的接口。Modifier类??提供了static方法和常量,对类和成员访问修饰符进行解码。Proxy?类????提供动态地生成代理类和类实例的静态方法。JAVA反射机制提供了什么功能?Java反射机制提供如下功能:在运行吋判断任意

5、一个对象所属的类在运行吋构造任意一个类的对象在运行时判段任意一个类所具有的成员变量和方法在运行时调用任一个对彖的方法在运行时创建新类对彖在使用Java的反射功能吋,基木首先都要获取类的Class对象,再通过Class对象获取其他的对象。这里首先定义用于测试的类:classType{publicintpublntField;publicStringpubStringField;privateintprvIntFicld;publicType(){Log("Defa

6、ultConstructor");Type(intargl,Stringarg2){publntField=argl;pubStringField=arg2;13Log(〃Construetorwithparameters'7);15}publicvoidsctintField(intval){this.prvlntField=val;19}publicintgetlntField(){returnprvIntField;}privatcvoidLog(Stringmsg){System,out.println(z,T

7、ype:,z+msg);}}classExtendTypeextendsType{publicintpublntExtcndFicld;publicStringpubStringExtendField;privateintprvIntExtendField;publicExtendType(){}Log(z/DefaultConstructor'7);}ExtendType

8、(intargl,Stringarg2){publntExtendField=argl;pubStringExtendField二arg2;Log(^Constructorwithparameters'7);}publicvoidsetlntExtendField(intfield7){this.prvlntExtendField

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。