[Java基础教程 ]反射机制ppt课件.ppt

上传人:小飞机 文档编号:2044873 上传时间:2023-01-03 格式:PPT 页数:10 大小:322.50KB
返回 下载 相关 举报
[Java基础教程 ]反射机制ppt课件.ppt_第1页
第1页 / 共10页
[Java基础教程 ]反射机制ppt课件.ppt_第2页
第2页 / 共10页
[Java基础教程 ]反射机制ppt课件.ppt_第3页
第3页 / 共10页
[Java基础教程 ]反射机制ppt课件.ppt_第4页
第4页 / 共10页
[Java基础教程 ]反射机制ppt课件.ppt_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《[Java基础教程 ]反射机制ppt课件.ppt》由会员分享,可在线阅读,更多相关《[Java基础教程 ]反射机制ppt课件.ppt(10页珍藏版)》请在三一办公上搜索。

1、反射机制,马剑威,第 133 讲,课程大纲,1、什么是反射2、Class类3、通过Class类取得类信息4、通过Class类调用属性或方法5、动态代理,1、什么是反射,反射:Reflection,类信息,对象,对象,类信息,2、Class类,Class类是一切的反射根源。Class类表示什么?很多的人可以定义一个Person类(有年龄,性别,姓名等)很多的车可以定义一个Car类(有发动机,颜色,车轮等)很多的类Class类(类名,构造方法,属性,方法)得到Class类的对象有三种方式:第一种形式:Object类中的getClass()方法第二种形式:类.class第三种形式:通过Class类的

2、forName方法:,2、Class类,使用Class类进行对象的实例化操作调用无参构造进行实例化public T newInstance()throws InstantiationException,IllegalAccessException调用有参构造进行实例化public Constructor getConstructors()throws SecurityException,3、通过Class类取得类信息,取得类所在的包public Package getPackage()/得到一个类所在的包public String getName()/得到名字取得一个类中的全部方法public

3、 Method getMethods()public int getModifiers()/Modifier.toString(mod);/还原修饰符public Class getReturnType()public Class getParameterTypes()public Class getExceptionTypes()public static String toString(int mod)取得一个类中的全部属性public Field getFields()public Field getDeclaredFields()public Class getType()public

4、 int getModifiers()public String getName(),4、通过Class类调用属性或方法,调用类中的方法调用类中的方法,传入实例化对象,以及具体的参数内容public Object invoke(Object obj,Object.args)直接调用属性取得属性public Object get(Object obj)/设置属性,等同于使用“=”完成操作public void set(Object obj,Object value)/让属性对外部可见public void setAccessible(boolean flag),5、动态代理,所谓动态代理,即通过

5、代理类:Proxy的代理,接口和实现类之间可以不直接发生联系,而可以在运行期(Runtime)实现动态关联。java动态代理主要是使用java.lang.reflect包中的两个类。InvocationHandler类publicObjectinvoke(Objectobj,Methodmethod,Objectobs)其中第一个参数 obj 指的是代理类,method是被代理的方法,obs是指被代理的方法的参数组。此方法由代理类来实现。,5、动态代理,Proxy类protected Proxy(InvocationHandler h);static Class getProxyClass(ClassLoader loader,Class interfaces);static Object newProxyInstance(ClassLoader loader,Classinterfaces,InvocationHandler h);动态代理其实是在运行时生成class,所以,我们必须提供一组interface,然后告诉他class已经实现了这些interface,而且在生成Proxy的时候,必须给他提供一个handler,让他来接管实际的工作。,谢谢,Thanks,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号