java的反射.pptVIP

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

Java 类型信息 获取java运行的时候的类型信息有两种方式: 一·RTTI 二·Java反射 RTTI 为什么需要RTTI 在运行时,识别一个对象的类型 列子: 当从数组中取出元素时,这种容器——实际上它将所有的事物都当作Object持有——会自动将结果转型回Shape。这是RTTI最基本的使用形式,因为在Java中,所有的类型转换都是在运行时进行正确性检查的 也正是这样要求的;您希望大部分代码尽可能少地了解对象的具体类型,而是只与对象家族中的一个通用表示打交道(在这个例子中是Shape)。这样代码会更容易写,更容易读,且更便于维护;设计也更容易实现、理解和改变。 Java反射 Class对象 Jvm的内存有一个运行时候数据区,其中有一个方法区,方法区内主要装载的是类的类型信息,jvm加载某个类得时,读取class时候 就提取class的类型信息存储到方法区中。 Class 类是java一个基础类,没装载一个新的类得时候,java虚拟机就会在java堆中,创建一个class的是实例,这个实例就代表这个class类型,通过实例获取类型信息 Method 类 的方法信息 Constructor 构造器类 Field 字段类 Java反射应用 返回一个类型引用几种方式 Class cls= Class.forName(“’) 返回一个类型 基本数据类 Class cls= Int.class 或者 Class cls= Interger.type 自定义类 Class cls= myClass.class 通过类得引用创建实例 cls.newinstace(); 通过newinstace创建实例时候 需类有一个 可访问的 无参数的构造函数 一般默认的那个构造函数即可 Java反射应用 Method 类中 invoke 反射 invoke方法 对带有指定参数的指定对象调用由此 Method 对象表示的基 础方法 介绍invoke 方法的使用 public class ClassA { public void add(Integer param1, Integer param2) {System.out.println(param1.intValue() + param2.intValue());} public void StringAdd(String abc) {System.out.println(out + abc);} public static void main(String[] args) { try { Method mth = ClassA.class.getMethod(add, new Class[] { Integer.class, Integer.class }); mth.invoke(ClassA.class.newInstance(), new Integer(1), new Integer(2)); Method mth1 = ClassA.class.getMethod(StringAdd, new Class[] { String.class }); mth1.invoke(ClassA.class.newInstance(), --test); } catch (Exception e) { } } } -----output------ 3 Out---test Java动态代理 java.lang.reflect.Proxy 这是 Java 动态代理机制的主类,它提供了一组静态方法来为一组接口动态地生成代理类及其对象。 //该方法用于获取指定代理对象所关联的调用处理器 static InvocationHandler getInvocationHandler(Object proxy) // 该方法用于获取关联于指定类装载器和一组接口的动态代理类的类对象 static Class getProxyClass(ClassLoader loader, Class[] interfaces) // 该方法用于判断指定类对象是否是一个动态代理类 static boolean isProxyClass(Class cl) // 该方法用于为指定类装载器、一组接口及调用处理器生成动态代理类实例 static Object newProxyInstance(ClassLoader loader, Class[] interfaces, InvocationHandler h) java.lang.reflect.InvocationHandler 这是调用处理器接口,它自定义了一个 invoke 方法,用于集

文档评论(0)

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

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

1亿VIP精品文档

相关文档