如何调用类属方法-read.pptVIP

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

Java 5 新特征 严悍 Java 5 新特征 类属generic 枚举enum 诠释annotation 断言assert 逐元循环for-each-loop 静态移入import static 自动包装/解包autoboxing/unboxing 可变形参varargs 类属generic 类属是什么?也译为“泛型” 对类型系统的一种强化设施。 通过“类型参量”使一个类型或方法能作用于多种类型的对象之上,并保证编译时刻类型安全性。 对于集聚Collection框架也免除了类型转换的麻烦。 类似于C++的模板template 类属generic 以java.util.List为例,Java2没有类属。 List myIntList = new LinkedList(); // 1 myIntList.add(new Integer(0)); // 2 Integer x = (Integer) myIntList.iterator().next(); // 3 问题:存入和取出操作时必需类型转换,容易引发存入和取出操作类型不一致,而这种错误是在运行时刻发生的严重错误。 类属generic Java5提供类属,定义java.util.ListE 其中,E为类型形参,表中元素的类型为E 代码得到简化: ListInteger myIntList = new LinkedListInteger(); //1 myIntList.add(new Integer(0)); //2 Integer x = myIntList.iterator().next(); //3 Integer为类型实参, ListInteger说明了一个List, 其中元素均为Integer 编译时对存入类型检查一致性,对取出操作不再需要类型转换。 类属generic 注意: ListE → ListInteger 并非简单的替换再编译。 类型形量是类属类型的一部分,与方法形参并没有区别。 当类属类型被使用时,类型实参传递给形参,然后运行。 习惯用大写单字母表示类型形参,区别于其它形参。 类属generic 问题:Integer是Object的子类,那么ListInteger是ListObject的子类吗? 代码1 ListInteger li = new ArrayListInteger(); //1 ListObject lo = li; //2 第2行是否合法?ArrayListE是ListE的子类型 代码2 有一个方法:void printCollection(ListObject c) 如此调用,printCollection(new ArrayListInteger) 是否合法? 类属generic ListInteger不是ListObject的子类! 这是因为ListObject可存入任意类型的对象。 那么,在类属类型中ListInteger的超类型是什么? 通配类型List?是ListInteger的一个超类型。 List?表示未知类型的一个List。 List? extends Number表示Number类及其子类的一个List,也是ListInteger的一个超类型。 List?等同于List? extends Object 类属generic 在类属类型的说明/定义中可用extends: 类型名E extends 类型名 以限定类属实例的具体范围。例如, ListOfNumberE extends Number 在类属说明中一个形参有几种形式? 单字母形式;表示任意类型,等同于E extends Object E extends 类型名形式,表示指定类型及其子类型。 类属generic 类属generic 类属方法是什么? 在说明中含有类型形参的方法,在方法返回类型之前说明类型形参,用于规范返回类型、方法的各形参类型之间的关系。例如: static T void fromArrayToCollection( T[] a, CollectionT c) { for (T o : a) { c.add(o); } } 如何调用类属方法? 无需显式传递实际类参,编译器会根据方法的实参类型来推定一个合适的类参。通常会推定一个能保证正确调用的最具体的一种类型。 类属generic 如何调用类属方法? Object[] oa = new Object

文档评论(0)

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

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

1亿VIP精品文档

相关文档