1.1.4 Java特性章 Generics(泛型)

泛型

基本类型的封装

基本数据类型包装类
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
charCharacter
booleanBoolean

泛型指代

E 表示 Element
K 表示 Key
V 表示 Value
N 表示 Number
T 表示 Type
S, U, V 等等 - 第二、第三、第四个类型

静态类型

public class Util {
//静态的泛型方法 需要在static后用<>声明泛型类型参数
    public static <E> void swap(E[] array, int i, int j) {
        E t = array[i];
        array[i] = array[j];
        array[j] = t;
    }
}


//使用类型推导
Integer[] a = { ... };
swap(a, 0, 9);
String[] b = { ... };
swap(b, 0, 9);

//不使用类型推导
Integer[] a = { ... };
Util.<Integer>swap(a, 0, 9);
String[] b = { ... };
Util.<String>swap(b, 0, 9);

泛型上界

//明确只能是边界类型或者边界类型的子类

class 泛型类名称<类型形参 extends 类型边界> {
...
}

//E必须是Number类或者其子类
public class MyArray<E extends Number> {
...
}

//E必须是实现了Comparable接口的
public class MyArray<E extends Comparable<E>> {
...
}

通配符

? extends//设置通配符上限
? super//设置通配符下限

上界示例

? extends//设置通配符上限
<? extends Number>//可以传入的实参类型是Number或者Number的子类

下界示例

<? super 下界>
<? super Integer> //代表 可以传入的实参的类型是Integer或者Integer的父类类型
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_Ap0stoL

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值