网站大量收购独家精品文档,联系QQ:2885784924

java基础加强[宣讲].pptVIP

  1. 1、本文档共67页,可阅读全部内容。
  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文档。上传文档
查看更多
泛型中的?通配符 问题: 定义一个方法,该方法用于打印出任意参数化类型的集合中的所有数据,该方法如何定义呢? 错误方式: public static void printCollection(CollectionObject cols) { for(Object obj:cols) { System.out.println(obj); } /* cols.add(string);//没错 cols = new HashSetDate();//会报告错误!*/ } 正确方式: public static void printCollection(Collection? cols) { for(Object obj:cols) { System.out.println(obj); } //cols.add(string);//错误,因为它不知自己未来匹配就一定是String cols.size();//没错,此方法与类型参数没有关系 cols = new HashSetDate(); } 总结: 使用?通配符可以引用其他各种参数化的类型,?通配符定义的变量主要用作引用,可以调用与参数化无关的方法,不能调用与参数化有关的方法。 * 精品PPT | 借鉴参考 泛型中的?通配符的扩展 限定通配符的上边界: 正确:Vector? extends Number x = new VectorInteger(); 错误:Vector? extends Number x = new VectorString(); 限定通配符的下边界: 正确:Vector? super Integer x = new VectorNumber(); 错误:Vector? super Integer x = new VectorByte(); 提示: 限定通配符总是包括自己。 ?只能用作引用,不能用它去给其他变量赋值 Vector? extends Number y = new VectorInteger(); VectorNumber x = y; 上面的代码错误,原理与VectorObject x11 = new VectorString();相似, 只能通过强制类型转换方式来赋值。 * 精品PPT | 借鉴参考 泛型集合类的综合案例 能写出下面的代码即代表掌握了Java的泛型集合类: HashMapString,Integer hm = new HashMapString,Integer(); hm.put(zxx,19); hm.put(lis,18); SetMap.EntryString,Integer mes= hm.entrySet(); for(Map.EntryString,Integer me : mes) { System.out.println(me.getKey() + : + me.getValue()); } 对在jsp页面中也经常要对Set或Map集合进行迭代: c:forEach items=“${map}” var=“entry” ${entry.key}:${entry.value} /c:forEach * 精品PPT | 借鉴参考 定义泛型方法 Java的泛型方法没有C++模板函数功能强大,java中的如下代码无法通过编译: T T add(T x,T y) { return (T) (x+y); //return null; } 用于放置泛型的类型参数的尖括号应出现在方法的其他所有修饰符之后和在方法的返回类型之前,也就是紧邻返回值之前。按照惯例,类型参数通常用单个大写字母表示。 交换数组中的两个元素的位置的泛型方法语法定义如下: static E void swap(E[] a, int i, int j) { E t = a[i]; a[i] = a[j]; a[j] = t; }//或用一个面试题讲:把一个数组中的元素的顺序颠倒一下 只有引用类型才能作为泛型方法的实际参数,swap(new int[3],3,5);语句会报告编译错误。 除了在应用泛型时可以使用extends限定符,在定义泛型时也可以使用extends限定符,例如,Class.getAnnotation()方法的定义。并且可以用来指定多个边界,如V extends Serializable cloneable void method(){} 普通方法、构造方法和静态方法中都可以使用泛型。 也可以用类型变量表示异常,称为参数化的异常,可以用于方法的throws列表中,但是不能用于catch子句中。 在泛型中可以同时有多个类型参数,在定义它

文档评论(0)

高胖莹 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档