【Java 基础】 泛型

Metadata

title: 【Java 基础】 泛型
date: 2022-12-14 14:12
tags:
  - 行动阶段/完成
  - 主题场景/编程
  - 笔记空间/KnowladgeSpace/ProgramSpace/BasicsSpace
  - 细化主题/Java/基础
  - 细化主题/泛型
categories:
  - Java
keywords:
  - Java/基础
  - 泛型
description: 泛型

描述

泛型的本质是为了参数化类型。

  • 适用于多种数据类型执行相同的代码(代码复用)
  • 泛型中的类型在使用时指定,不需要强制类型转换(类型安全,编译器会检查类型)

泛型的基本使用

泛型类

泛型接口

泛型方法

泛型方法,是在调用方法的时候指明泛型的具体类型。

定义泛型方法语法格式

  • 调用泛型方法语法格式

泛型数组

-

小结

<?> 无限制通配符
<? extends E> extends 关键字声明了类型的上界,表示参数化的类型可能是所指定的类型,或者是此类型的子类
<? super E> super 关键字声明了类型的下界,表示参数化的类型可能是指定的类型,或者是此类型的父类

// 使用原则《Effictive Java》
// 为了获得最大限度的灵活性,要在表示 生产者或者消费者 的输入参数上使用通配符,使用的规则就是:生产者有上限、消费者有下限
1. 如果参数化类型表示一个 T 的生产者,使用 < ? extends T>;
2. 如果它表示一个 T 的消费者,就使用 < ? super T>;
3. 如果既是生产又是消费,那使用通配符就没什么意义了,因为你需要的是精确的参数类型。