Java泛型详解(超详细的java泛型方法解析).pdf

Java泛型详解(超详细的java泛型方法解析).pdf

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java泛型详解(超详细的 java泛型⽅法解析) ⽬录 2. 什么是泛型 3. 使⽤泛型的好处 4. 泛型的使⽤ 4.1 泛型类 4.2 泛型⽅法 4.3 泛型接⼝ 5. 泛型通配符 5.1 通配符基本使⽤ 5.2 通配符⾼级使⽤ 6. 总结 1.为什么使⽤泛型 早期的Object类型可以接收任意的对象类型,但是在实际的使⽤中,会有类型转换的问题。也就存在这隐患,所以 Java提供了泛型来解决这个安全问题。 来看⼀个经典案例: public static void main(String[] args) { // 测试⼀下泛型的经典案例 ArrayList arrayList = new ArrayList(); arrayList.add(helloWorld); arrayList.add(taiziyenezha); arrayList.add(88);// 由于集合没有做任何限定,任何类型都可以给其中存放 for (int i = 0; i arrayList.size(); i++) { // 需求:打印每个字符串的长度,就要把对象转成Strin 类型 String str = (String) arrayList.get(i); System.out.println(str.length()); } } 运⾏这段代码,程序在运⾏时发⽣了异常: Exception in thread main java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Strin 发⽣了数据类型转换异常,这是为什么? 由于ArrayList 可以存放任意类型的元素。例⼦中添加了⼀个Strin 类型,添加了⼀个Integer类型,再使⽤时都以Strin 的⽅式使 ⽤,导致取出时强制转换为Strin 类型后,引发了ClassCastException ,因此程序崩溃了。 这显然不是我们所期望的,如果程序有潜在的错误,我们更期望在编译时被告知错误,⽽不是在运⾏时报异常。⽽为了解决类似这 样的问题(在编译阶段就可以解决),在jdk1.5后,泛型应运⽽⽣。让你在设计API时可以指定类或⽅法⽀持泛型,这样我们 使⽤API的时候也变得更为简洁,并得到了编译时期的语法检查。 我们将第⼀⾏声明初始化ArrayList的代码更改⼀下,编译器就会在编译阶段就能够帮我们发现类似这样的问题。现在再看看效 果。 ArrayListString arrayList = new ArrayList(); arrayList.add(helloWorld); arrayList.add(taiziyenezha); arrayList.add(88);// 在编译阶段,编译器就会报错 这样可以避免了我们类型强转时出现异常。 2.什么是泛型 泛型:是⼀种把明确类型的⼯作推迟到创建对象或者调⽤⽅法的时候才去明确的特殊的类型。也就是说在泛型使⽤过程中,操 作的数据类型被指定为⼀个参数,⽽这种参数类型可以⽤在类、⽅法和接⼝中,分别被称为 、 、 。 泛型类 泛型⽅法 泛型接⼝ 注意:⼀般在创建对象时,将未知的类型确定具体的类型。当没有指定泛型时,默认类型为Object类型。 3.使⽤泛型的好处 避免了类型强转的⿇烦。 它提供了编译期的类型安全,确保在泛型类型(通常为泛型集合)上只能使⽤正确类型的对象,避免了在运⾏时出现 ClassCastException 。 4.泛型的使⽤ 泛型虽然通常会被⼤量的使⽤在集合当中,但是我们也

文档评论(0)

. + 关注
官方认证
内容提供者

专注于职业教育考试,学历提升。

版权声明书
用户编号:8032132030000054
认证主体社旗县清显文具店
IP属地河南
统一社会信用代码/组织机构代码
92411327MA45REK87Q

1亿VIP精品文档

相关文档