- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
?
?
Java反射技术浅谈
?
?
论文导读:反射的引入反射(Reflection)的概念是由Smith在1982年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。可是这种实例化对象的方法存在一个问题,就是必须要知道类名才可以实例化它的对象,这样我们在应用方面就会受到限制。◆Field类:代表类的成员变量(成员变量也称为类的属性)。◆Array类:提供了动态创建数组,以及访问数组元素的静态方法。2)利用Class对象的getConstructor()方法获取指定的构造器(准备一个Class[]作为该方法的参数类型)。
关键词:反射,构造器,属性,方法,数组
?
一、引言1:反射的引入反射(Reflection)的概念是由Smith在1982年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。这一概念的提出很快引发了计算机科学领域关于应用反射性的研究。它首先被程序语言的设计领域所采用,并在Lisp和面向对象方面取得了成绩。其中LEAD/LEAD++、OpenC++和OpenJava等就是基于反射机制的语言。
自从1995年问世以来,Java一直以其面向对象的,可移植的,多线程的和动态的特点而著称,并得到了广泛的应用。严格来讲,java并不能算纯粹的动态语言,但是Java有着一个非常突出的动态相关机制:反射(Reflection)。在Java中我们可以于运行时加载、发现、使用编译期间完全未知的classes。换句话说,Java程序可以加载一个运行时才得知名称的class,得到其完整构造(但不包括methods定义),并生成其对象实体,或对其fields设值;或调用其methods。
我们可以通过以下语句对反射有一个更清楚的认识。“Personp=newPerson();”这是什么?当然是实例化一个对象了。可是这种实例化对象的方法存在一个问题,就是必须要知道类名才可以实例化它的对象,这样我们在应用方面就会受到限制。那么有没有这样一种方式,让我们不知道这个类的类名就可以实例化它的对象呢?有,可以采用反射技术来实现。
2:反射的主要接口和类在JDK中,主要由以下类来实现Java反射机制,这些类都位于java.lang.reflect包。
◆Class类:代表一个类。
◆Field类:代表类的成员变量(成员变量也称为类的属性)。免费。
◆Method类:代表类的方法。
◆Constructor类:代表类的构造方法。
◆Array类:提供了动态创建数组,以及访问数组元素的静态方法。
二、反射的入口:Class类JAVA中的类反射就是一个在当前JVM中支持类、接口和对象内省的小型的、类型安全的和可靠的API。它是通过java.1ang.reflect包提供的,可以对类的能力进行分析。反射使程序代码能够访问装载到JVM中的类的内部信息,主要包括获取已装载类的字段、方法和构造函数的信息,允许编写处理类的代码,这些类是在程序运行时临时确定的,而非源代码中事先选定的。这使反射成为构建灵活的应用的主要工具。
1.Class类Java中的“Class”类是Java中一个十分特殊的类。它和其它类一样继承自“Object”类,其对象用以表达Java程序运行时的类和接口。当一个类被加载时,JVM便自动产生一个类对象。
在java.lang.Object类中定义了getClass()方法,因此对于任意一个Java对象,都可以通过此方法获得对象的类型。免费。Class类是ReflectionAPI中的核心类,它有以下方法。
◆getName():获得类的完整名字。
◆getFields():获得类的public类型的属性。
◆getDeclaredFields():获得类的所有属性。
◆getMethods():获得类的public类型的方法。
◆getDeclaredMethods():获得类的所有方法。
◆getMethod(Stringname,Class[]parameterTypes):获得类的特定方法,name参数指定方法的名字,parameterTypes参数指定方法的参数类型。
◆getConstrutors():获得类的public类型的构造方法。
◆getConstrutor(Class[]parameterTypes):获得类的特定构造方法,parameterTypes参数指定构造方法的参数类型。
◆newInstance():通过类的不带参数的构造方法创建这个类的一个对象。、
“Class”是Java反射机制的起源。针对任何想探查的类,只有先为它产生一个“Class”对象,接下来才能由这个“Class”对象调用为数十
您可能关注的文档
- 互联网+时代电信运营商电子渠道发展策略研究.docx
- 传统乡村供电服务的升级转型.docx
- 互联网时代高职院校辅导员学生管理能力建设探讨.docx
- 北京市高校体育社团发展现状与发展策略.docx
- 工法培训课件.pptx
- 主体工程防水质量责任与落实.docx
- HDPE管道施工方案.docx
- 技术质量培训习题.docx
- 地下室渗漏防治.docx
- 2024年广东省韶关市乳源瑶族自治县数学九上开学教学质量检测试题【含答案】.doc
- 计及电动汽车移动储能动态电价的微电网优化调度研究及解决方案.pdf
- 浅谈电动汽车充电桩绝缘智能化自检装置的设计与应用 .pdf
- 浅谈电动汽车公共充电桩布局方案评价方法.pdf
- 浅谈基于弹性响应的电动汽车快充电价定价策略 汽车充电桩有序充电.pdf
- 浅谈光储充一体化社区的有序充电策略及解决方案.pdf
- 晚期肾透明细胞癌系统性治疗中国专家共识(2024版).pptx
- 中国膀胱癌保膀胱治疗多学科诊治协作共识(2022版).pptx
- 成人心血管外科手术体外循环患者血液管理指南.pptx
- 下尿路修复重建移植物应用规范中国专家共识.pptx
- 中国儿童急性非静脉曲张性上消化道出血诊治指南(2024).pptx
最近下载
- 水厂二期工程自控仪表及安防系统技术标准和要求.doc
- 四年级科学下册岩石与土壤3.7比较不同的土壤课件教科版.pptx
- 钢吊车梁SG520-1标准图集.pdf
- ppt课件云朵棉花糖.ppt
- 2024年人教精通版三年级上册英语Unit 2 Fun time & Story time.pptx VIP
- 川教版(2024)三年级上册信息科技 1.3树立正确在线观念 课件.pptx VIP
- 院科两级质量与安全教育培训计划与记录.pdf
- 2024年新湘教版七年级上册数学全册教案设计.docx
- 川教版(2024)三年级上册信息科技 第二节 了解多样在线技能 课件.pptx VIP
- 新课标背景下的教学论文:小学语文整本书阅读教学策略探究.docx VIP
文档评论(0)