泛型

  • 1.1 引言
  • 1.2 动机和优点
  • 1.3 定义泛型类和接口
  • 1.4 泛型方法
  • 1.5 【示例】对一个对象数组进行排序
  • 1.6 原始泛型和向后兼容
  • 1.7 通配泛型
  • 1.8 消除泛型和对泛型的限制
  • 1.9 【示例】泛型矩阵类

1.1 引言

泛型可以使我们在编译时就检测出错误,而不必等到运行才检出错误。如果视图使用一个不相容的对象,编译器会检测出这个错误。

1.2 动机和优点

从1.5开始允许定义泛型类泛型接口泛型方法,并且在API中修改了java.lang.Comparable接口。
<T>表示泛型类型,随后用一个实际具体类型来替换它,替换的类型称为泛型实例化。
泛型类型是引用类型,不能用基本类型来实例化,使用包装类来替换。
优点:

  1. 存的时候,编译器会提示类型不匹配
  2. 取得时候,无需类型转换,直接输入index可以查找
        // 这里不会出错!
        ArrayList date = new ArrayList<>();
        date.add(new Date());
        date.add(new String(" string"));
        System.out.println((String)date.get(1) + date);// 这里如果没使用泛型,在输出的时候需要强制类型转换
        // 这里编译会出错!
        ArrayList<Date> dateArray = new ArrayList<>();
        dateArray.add(new Date());
        dateArray.add("string");// 错误的地方

1.3 定义泛型类和接口

使用类来创建对象,或者使用类或接口来声明引用变量时,需要指明具体的类型

1.4 泛型方法

1.5 【示例】对一个对象数组进行排序

1.6 原始泛型和向后兼容

1.7 通配泛型

1.8 消除泛型和对泛型的限制

1.9 【示例】泛型矩阵类

【引用】
Java语言程序设计(进阶篇) ---- 机械工业出版社

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • object 变量可指向任何类的实例,这让你能够创建可对任何数据类型进程处理的类。然而,这种方法存在几个严重的问题...
    CarlDonitz阅读 4,440评论 0 5
  •   在Effective中讲到泛型之处提到了一个概念,类型擦除器,这是什么呢?接下来我们跟随这篇文章探索类型擦除的...
    凌云_00阅读 6,450评论 0 8
  • 引言:泛型一直是困扰自己的一个难题,但是泛型有时一个面试时老生常谈的问题;今天作者就通过查阅相关资料简单谈谈自己对...
    cp_insist阅读 5,819评论 0 4
  • 梨花雨后烟轻,孤影绕回屏。 春风梦里,青梅错嗅,爱恨难明。 不忍深情皆入酒。趁如今、夏月初升, 青丝未老,天涯无尽...
    殷强里斯阅读 845评论 0 1
  • 昨晚12月24号平安夜,对我来说又是一个平淡无奇的一天,昏昏沉沉是脑袋,下午去游个泳,回来情绪被同事影响什么事情都...
    孤岛101阅读 845评论 0 0