java泛型反射机制与代理.pptVIP

  1. 1、本文档共54页,可阅读全部内容。
  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反射机制 Java代理模式 泛型(Generics) 泛型是一个重要的JAVA语言加强,它使语言更加灵活. 1.类型安全 泛型的主要目标是提高Java 程序的类型安全。通过知道使用泛型定义的变量的类型限制,编译器可以在一个高得多的程度上验证类型假设。没有泛型,这些假设就只存在于程序员的头脑中。 2.消除强制类型转换 泛型的一个附带好处是,消除源代码中的许多强制类型转换。这使得代码更加可读,并且减少了出错机会。 3.潜在的性能收益 泛型为较大的优化带来可能。在泛型的初始实现中,编译器将强制类型转换(没有泛型的话,程序员会指定这些强制类型转换)插入生成的字节码中。但是更多类型 信息可用于编译器这一事实,为未来版本的JVM 的优化带来可能. 没有泛型的问题 JDK5以前的List操作: 类List的函数add接受一个Object参数: public boolean add(java.lang.Object element) 类List的函数get函数从中取出一个对象: public java.lang.Object get(int index) throws IndexOutOfBoundsException 一般编码示例: List stringList1 = new ArrayList(); stringList1.add(Java 5); stringList1.add(with generics); String s1 = (String) stringList1.get(0); 集合框架中的泛型 创建集合容器时规定其允许保存的元素类型,然后由编译器负责添加元素的类型合法性检查,在取用集合元素时则不必再进行造型处理。 例1 使用泛型的列表集合 例2 在Hashtable中使用泛型 泛型的向后兼容性 ?? Java语言中的泛型向过去兼容 在高版本开发环境中编译未启用泛型机制的集合框加应用代码时,会输出编译提示信息:例3 泛型进阶(1) 泛型类 由类型参数修饰的类型称为泛型类 数据类型类型参数 public class VectorE { public void addElement(E obj) { ---} public E elementAt(int index) { --- } } 使用泛型类类时应明确指定类型参数 VectorString v = new VectorString(); 例4 泛型进阶(2) 同一个泛型类搭配不同的类型参数复合而 成的类型属于同一个类,但却是不同的类 型。例如:VectorDouble与VectorString 同一个泛型类与不同的类型参数复合而成 的类型间并不存在继承关系,即使是类型 参数间存在继承关系时也是如此,例如: VectorDouble与VectorObject 问题:引入泛型后代码的通用性下降? 例5 Test.java 泛型进阶(3) 类型通配符“?” 使用“?”作为类型参数,例如Vector?: ?? Vector?是任何泛型Vector的父类型。 ?? Vector?类型的变量在调用方法时是受到限 制的——凡是必须知道具体类型参数才能进行 的操作均被禁止。例6?? 使用泛型方法 修饰符 类型参数 返回值类型 方法名(形参列表){ …….. }例7 泛型进阶(4) 受限制的类型参数 泛型机制允许开发者对类型参数进行附 加约束。 ?? 例8 受限制的类型通配符 ?? 例9 使用受限制的类型通配符 Java 语言的反射机制 在Java运行时环境中,对于任意一个类,能否知道这个类有哪些属性和方法?对于任意一个对象,能否调用它的任意一个方法?答案是肯定的。这种动态获取类的信息以及动态调用对象的方法的功能来自于Java 语言的反射(Reflection)机制。 Java 反射机制主要提供了以下功能 Java 语言的反射机制 在运行时判断任意一个对象所属的类。 在运行时构造任意一个类的对象。 在运行时判断任意一个类所具有的成员变量和方法。 在运行时调用任意一个对象的方法 Java 语言的反射机制 Reflection 是Java被视为动态(或准动态)语言的一个关键性质。这个机制允许程序在运行时透过Reflection APIs取得任何一个已知名称的class的内部信息,包括其modifiers(诸如public, static 等等)、superclass(例如Object)、实现之interfaces(例如Serializable),也包括fiel

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档