反射与动态代理PPT讲稿.ppt
《反射与动态代理PPT讲稿.ppt》由会员分享,可在线阅读,更多相关《反射与动态代理PPT讲稿.ppt(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、反射与动态代理第1页,共29页,编辑于2022年,星期五本章内容n反射定义nClass类nField、Method和Constructorn反射的应用n代理模式n动态代理模式第2页,共29页,编辑于2022年,星期五反射概念n反射(reflective)的概念是由Smith在1982年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。它允许运行中的Java程序对自身进行检查,或者说“自审”,并能直接操作程序的内部属性和方法。第3页,共29页,编辑于2022年,星期五Class类n在程序运行期间,Java运行时系统始终为所有的对象维护一个被称为运行时的类型标识。这个信息保存
2、着每个对象所属的类的足迹。n生成类对象(Class的对象)的三种方式:1)Class clazz=对象.getClass();2)Class clazz=Class.forName(类名);3)Class clazz=类名.class;n生成父类的类对象:Class superClass=clazz.getSuperClass();第4页,共29页,编辑于2022年,星期五生成Class对象n方法一:Employee emp=new Employee();Class clazz=emp.getClass();n方法二:String className=“com.bestinfo.Employe
3、e”;Class clazz=Class.forName(className);n方法三:Class clazz=Employee.class;注:一个Class对象实际上表示的是一个类型,而这个类型未必一定是一个类。例如:Class clazz=int.class;Class clazz=Double.class;第5页,共29页,编辑于2022年,星期五相等性n对于同一种类(或类型)而言,用三种方式生的的Class对象都是相等的,例如:Employee emp=new Employee();emp.getClass()=Employee.class;emp.getClass()=Class
4、.forName(“com.bestinfo.Employee”);第6页,共29页,编辑于2022年,星期五Class方法Class getSuperClass()返回表示此Class所表示的实体(类、接口、基本类型或void)的超类的Class。Class asSubClass(Class clazz)强制转换该Class对象,以表示指定的class对象所表示的类的一个子类。static Class forName(String className)返回与带有给定字符串名的类或接口相关联的Class对象。第7页,共29页,编辑于2022年,星期五T newInstance()创建此 Cla
5、ss 对象所表示的类的一个新实例。Constructor getConstructor(Class parameterTypes)返回一个Constructor对象,它反映此Class对象所表示的类的指定公共构造方法。Constructor getConstructors()返回一个包含某些Constructor对象的数组,这些对象反映此Class 对象所表示的类的所有公共构造方法。第8页,共29页,编辑于2022年,星期五Field getDeclaredField(String name)返回一个Field对象,该对象反映此Class对象所表示的类或接口的指定已声明字段。Field get
6、DeclaredFields()返回Field对象的一个数组,这些对象反映此Class对象所表示的类或接口所声明的所有字段,包括公共、保护、默认(包)访问和私有字段,但不包括继承的字段。Field getField(String name)返回一个Field对象,它反映此Class对象所表示的类或接口的指定公共成员字段。第9页,共29页,编辑于2022年,星期五Field getFields()返回一个包含某些Field对象的数组,这些对象反映此Class对象所表示的类或接口的所有可访问公共字段。Method getDeclaredMethod(String name,Class parame
7、terTypes)返回一个Method对象,该对象反映此Class对象所表示的类或接口的指定已声明方法。Method getDeclaredMethods()返回Method对象的一个数组,这些对象反映此Class对象表示的类或接口声明的所有方法,包括公共、保护、默认(包)访问和私有方法,但不包括继承的方法。第10页,共29页,编辑于2022年,星期五Method getMethod(String name,Class parameterTypes)返回一个Method对象,它反映此Class对象所表示的类或接口的指定公共成员方法。Method getMethods()返回一个包含某些Meth
8、od对象的数组,这些对象反映此Class对象所表示的类或接口(包括那些由该类或接口声明的以及从超类和超接口继承的那些的类或接口)的公共方法。String getName()以String的形式返回此Class对象所表示的实体(类、接口、数组类、基本类型或 void)名称。第11页,共29页,编辑于2022年,星期五int getModifiers()返回此类或接口以整数编码的Java语言修饰符。String getSimpleName()返回源代码中给出的基础类的简称。Package getPackage()获取此类的包。Class getComponentType()返回表示数组组件类型的C
9、lass。第12页,共29页,编辑于2022年,星期五boolean isArray()判定此Class对象是否表示一个数组类。boolean isAssignableFrom(Class clazz)判定此Class对象所表示的类或接口与指定的Class参数所表示的类或接口是否相同,或是否是其超类或超接口。boolean isInstance(Object o)判定指定的Object是否与此Class所表示的对象赋值兼容。boolean isInterface()判定指定的Class对象是否表示一个接口。第13页,共29页,编辑于2022年,星期五boolean isPrimitive()判
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 反射 动态 代理 PPT 讲稿
限制150内