反射与动态代理.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

反射与动态代理第1页,共29页,星期日,2025年,2月5日本章内容反射定义Class类Field、Method和Constructor反射的应用代理模式动态代理模式第2页,共29页,星期日,2025年,2月5日反射概念反射(reflective)的概念是由Smith在1982年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。它允许运行中的?Java?程序对自身进行检查,或者说“自审”,并能直接操作程序的内部属性和方法。第3页,共29页,星期日,2025年,2月5日Class类在程序运行期间,Java运行时系统始终为所有的对象维护一个被称为运行时的类型标识。这个信息保存着每个对象所属的类的足迹。生成类对象(Class的对象)的三种方式: 1)Classclazz=对象.getClass(); 2)Classclazz=Class.forName(类名); 3)Classclazz=类名.class;生成父类的类对象: ClasssuperClass=clazz.getSuperClass();第4页,共29页,星期日,2025年,2月5日生成Class对象方法一: Employeeemp=newEmployee(); Classclazz=emp.getClass();方法二: StringclassName=“com.bestinfo.Employee”; Classclazz=Class.forName(className);方法三: Classclazz=Employee.class; 注:一个Class对象实际上表示的是一个类型,而这个类型未必一定是一个类。例如: Classclazz=int.class; Classclazz=Double[].class;第5页,共29页,星期日,2025年,2月5日相等性对于同一种类(或类型)而言,用三种方式生的的Class对象都是相等的,例如: Employeeemp=newEmployee(); emp.getClass()==Employee.class; emp.getClass()==Class.forName(“com.bestinfo.Employee”);第6页,共29页,星期日,2025年,2月5日Class方法 ClassgetSuperClass() 返回表示此Class所表示的实体(类、接口、基本类型或void)的超类的Class。 ClassasSubClass(Classclazz) 强制转换该Class对象,以表示指定的class对象所表示的类的一个子类。 staticClassforName(StringclassName) 返回与带有给定字符串名的类或接口相关联的Class对象。第7页,共29页,星期日,2025年,2月5日 TnewInstance() 创建此Class对象所表示的类的一个新实例。 ConstructorgetConstructor(Class…parameterTypes) 返回一个Constructor对象,它反映此Class对象所表示的类的指定公共构造方法。 Constructor[]getConstructors() 返回一个包含某些Constructor对象的数组,这些对象反映此Class对象所表示的类的所有公共构造方法。第8页,共29页,星期日,2025年,2月5日 FieldgetDeclaredField(Stringname) 返回一个Field对象,该对象反映此Class对象所表示的类或接口的指定已声明字段。 Field[]getDeclaredFields() 返回Field对象的一个数组,这些对象反映此Class对象所表示的类或接口所声明的所有字段,包括公共、保护、默认(包)访问和私有字段,但不包括继承的字段。 FieldgetField(Stringname) 返回一个Field对象,它反映此Class对象所表示的类或接口的指定公共成员字段。第9页,共29页,星期日,2025年,2月5日 Field[]getFields() 返回一个包含某些Field对象的数组,这些对象反映此Class对象所表示的类或接口的所有可访问公共字段。 MethodgetDeclaredMethod(Stringname,Class…parameterTypes) 返回一个Method对象,该对象反映此Class对象所表示的类

文档评论(0)

xiaoshun2024 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档