- 1、本文档共84页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java编程思想十四章节类型信息之反射与代理
第十四章 类型信息;五、反射:运行时的类信息;★ RTTI的三种使用形式
◆ 传统的类型转换(发生在编译时)
◆ Class对象(通过查询Class对象可以获取运行时
所需的信息)
◆ 关键字instanceof(发生在运行时);五、反射:运行时的类信息;★ 在Java程序中,我们常常会利用这样的语句来创
建一个对象:Date date = new Date();
◆ 注意:在该语句中,date的类型(Java.util.Date)
在编译时已经确定
◆ 那么,有没有什么办法,使我们可以将对象类型
的确定时间由编译时转到运行时,答案是肯定的,
这就是利用Java的反射机制;五、反射:运行时的类信息;1、反射概念的提出很快引发了计算机科学领域关于
应用反射性的研究
★ 它首先被程序设计语言所采用,并在Lisp和面向
对象方面取得了成绩,其中:LEAD/LEAD++ 、
OpenC++ 和OpenJava就是基于反射机制的语言
◆ 而现在,反射机制也被应用到了视窗系统、操作
系统和文件系统中;2、反射本身并不是一个新概念,我们很容易想起在
光学中也有反射的概念
★ 比如照镜子,通过反射,我们可以看到自己
★ 尽管在计算机科学领域中,反射这个概念已经被
赋予了很多新的含义,但是从现象上来说,它们
确实有某些相通之处,而这种联想有助于我们对
反射概念的理解;3、在计算机科学中,反射是指通过某种机制来实现
对自己行为的自描述和监测,并且能够根据这些
自描述,调整或修改系统、应用或程序所描述的
行为和状态
★ 可以看出,同一般的反射概念相比,计算机科学
领域的反射不单单指反射本身,还包括了对反射
结果所采取的措施;五、反射:运行时的类信息;★ 从这个被大多数人所公认的,关于动态语言的
定义来看,Perl、Python、Ruby是动态语言
◆ 而C++、Java、C#不是动态语言
◆??尽管在这样的定义与分类下,Java并不是一种
动态语言,但它却有着一个非常突出的与动态
相关的机制:反射;五、反射:运行时的类信息;五、反射:运行时的类信息;五、反射:运行时的类信息;★ import java.lang.reflect.*;
public class DumpMethods
{ public static void main(String args[])
{
try
{ Class c = Class.forName(args[0]);
// 保证编译期间不知道类的详细信息
Method m[] = c.getDeclaredMethods(); ; for(int i = 0;i m.length;i++)
System.out.println(m[i].toString());
} catch(Throwable e)
{ System.err.println(e); }
} // End of main
} // End of Class;★ 按如下语句执行:
java DumpMethods java.util.Stack
◆ 它的结果输出为:;★ 分析: java.lang.reflect.Method是这样的一个类:
它用来描述所指定的类中单个方法
◆ 这个程序使用Class.forName( ) 载入指定的类,
然后再调用getDeclaredMethods()方法来获取
该指定类的方法列表
◆ 这样就列出了java.util.Stack类的各个方法名以及
它们的限制符和返回类型;五、反射:运行时的类信息;★ Java.lang.reflect包的接口
⑴ InvocationHandler接口:
⑵ Member接口:
◆ 该接口可以获取有关类成员(包括域或者方法)
或者构造函数的信息;★ Java.lang.reflect包的类
⑴ AccessibleObject类:
◆ 该类是域(field)对象、方法(method)对象、
您可能关注的文档
最近下载
- 三年级【美术(人美版)】肖像漫画1教学设计.docx
- ARDS患者的护理查房.pptx VIP
- 2024年秋新人教版英语七年级上册全册大单元教学设计教案(2024年新教材).pdf
- 超声科开展的检查项目及其意义.ppt
- 青少年特发性脊柱侧弯的分型.ppt
- 实验室质量控制管理.docx VIP
- 2024新中图版地理七年级上册《第二单元 多彩独特的自然环境》大单元第二节复杂多样的气候(计划一课时)教学设计.docx
- 质量控制实验室与物料系统—10.试剂及试液的管理.pdf VIP
- 2024新中图版地理七年级上册《第二单元 多彩独特的自然环境》大单元 第二节 复杂多样的气候(计划一课时)教学设计[2022课标].docx
- 《帝豪保修手册》word版83.pdf
文档评论(0)