java泛型概述

一、泛型

1. 泛型概述

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

2. 泛型类

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

3. 泛型方法

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

4. 泛型接口

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

5. 泛型通配符

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值