JAVA专题:反射

JAVA专题:反射

ID:37856832

大小:108.00 KB

页数:16页

时间:2019-06-01

JAVA专题:反射_第1页
JAVA专题:反射_第2页
JAVA专题:反射_第3页
JAVA专题:反射_第4页
JAVA专题:反射_第5页
资源描述:

《JAVA专题:反射》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Q3725922chenpeimin@live.comJAVA的反射机制反射:Reflection反射本身并不是一个新概念,它可能会使我们联想到光学中的反射概念,尽管计算机科学赋予了反射概念新的含义,从现象上来说,它们确实有某些相通之处,这些有助于我们的理解。在计算机科学领域,反射是指一类应用,它们能够自我描述和自我控制,主要体现在程序可以访问、检测和修改它本身状态或行为的一种能力。可以看出,同一般的反射概念相比,计算机科学领域的反射不单单指反射本身,还包括对反射结果所采取的措施。反射是Java

2、程序开发语言的特征之一,它允许访问、检测和修改它本身状态或行为,比如它能直接操作程序的内部属性。Java的这一能力在实际应用中也许用得不是很多,但是在其它的程序设计语言中根本就不存在这一特性。例如,Pascal、C或者C++中就没有办法在程序中获得函数定义相关的信息。一、检测1、先看下一个简单的例子,让我们了解reflection是如何工作的importjava.lang.reflect.*;publicclassDumpMethods{publicstaticvoidmain(Stringar

3、gs[]){try{Classc=Class.forName(args[0]);Methodm[]=c.getDeclaredMethods();for(inti=0;i

4、a.util.Stack.push(java.lang.Object)publicsynchronizedjava.lang.Objectjava.util.Stack.pop()publicsynchronizedjava.lang.Objectjava.util.Stack.peek()publicbooleanjava.util.Stack.empty()publicsynchronizedintjava.util.Stack.search(java.lang.Object)这个程序使用C

5、lass.forName载入指定的类,然后调用getDeclaredMethods来获取这个类中定义了的方法列表。java.lang.reflect.Methods是用来描述某个类中单个方法的一个类。2、Java类反射中的主要方法提供对类的字段、方法、构造函数等得反射。以下是用于查找构造函数的一组反射调用:Java专题系列文档Q3725922chenpeimin@live.coma.ConstructorgetConstructor(Class[]params)获得使用特殊的参数类型的公共构造函

6、数b.Constructor[]getConstructors()获得类的所有公共构造函数c.ConstructorgetDeclaredConstructor(Class[]params)获得使用特定参数类型的构造函数(与接入级别无关)d.Constructor[]getDeclaredConstructors()获得类的所有构造函数(与接入级别无关)获得字段信息的Class反射调用不同于那些用于接入构造函数的调用,在参数类型数组中使用了字段名:a.FieldgetField(Stringna

7、me)--获得命名的公共字段b.Field[]getFields()--获得类的所有公共字段(只有public获取,private类型不会获取)c.FieldgetDeclaredField(Stringname)--获得类声明的命名的字段d.Field[]getDeclaredFields()--获得类声明的所有字段用于获得方法信息函数:a.MethodgetMethod(Stringname,Class[]params)--使用特定的参数类型,获得命名的公共方法b.Method[]getMe

8、thods()--获得类的所有公共方法c.MethodgetDeclaredMethod(Stringname,Class[]params)--使用特写的参数类型,获得类声明的命名的方法d.Method[]getDeclaredMethods()--获得类声明的所有方法1、开始使用Reflection:用于reflection的类,如Method,可以在java.lang.relfect包中找到。使用这些类的时候必须要遵循三个步骤:第一步是获得你想操作的类的java.lang.Class对象。在

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

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

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