java泛型概述

文章目录

    • 一、泛型
      • 1. 泛型概述
      • 2. 泛型类
      • 3. 泛型方法
      • 4. 泛型接口
      • 5. 泛型通配符

一、泛型

1. 泛型概述

  • 泛型的由来
    • 当我们要接收一个参数的时候,但却不明确接收的参数的类型,这个时候就可以将参数类型设置为Object类型,这样子所有类型的参数都可以接收。
    • 但是这样子做有一个问题,我们用Object类型的变量可以接收所有类型的对象,但是当我们要使用这个对象内部存储的数据时,需要手动将这个对象再次强转为它原来的类型,很麻烦。
    • 这个时候就可以使用泛型,它可以自动识别参数的类型,确定返回值,不用再手动进行类型转换
  • 泛型的定义
    • 类型的明确工作不再是在定义的时候完成,而是交由创建对象或调用方法时去明确。也就是定义的时候并不知道是什么类型,在实际使用的时候再确定类型
    • 格式
      • <数据类型>
      • 只能是引用的数据类型
    • 可以定义在类、接口、方法、集合上
  • 泛型的优点
    • 将运行时期的类型选择问题提前到了编译期间
    • 避免了类型的强制转换
    • 优化程序设计,解决黄色警告
    • 注:泛型只在编译期间存在,在运行期间泛型就擦除了

2. 泛型类

  • 将泛型定义在类上面
  • 定义格式
    • public class 类名 <泛型类型…>
  • 注意事项:泛型必须为引用类型

3. 泛型方法

  • 将泛型定义在方法上
  • 定义格式
    • public <泛型类型…> 返回类型 方法名(泛型类型 变量名){方法体}

4. 泛型接口

  • 将泛型定义在接口上
  • 定义格式
    • public interface 接口名<泛型类型…>

5. 泛型通配符

    • 任意类型
  • + 向下限定,只限E及子类
  • + 向上限定,只限E及父类
  • 泛型一经明确,则左右两边的类型要一致,且只能添加明确的类型的对象
    向上限定,只限E及父类
  • 泛型一经明确,则左右两边的类型要一致,且只能添加明确的类型的对象

你可能感兴趣的:(JavaSE)