Java 泛型

来自牛奶河Wiki
阿奔讨论 | 贡献2024年5月20日 (一) 10:23的版本
跳到导航 跳到搜索

Java 泛型

泛型,即“参数化类型”,编写更通用、类型安全的代码。定义时由参数代替具体的类型,使用时传入具体的类型(即形参不指定类型,由实参指定)。

泛型类型

泛型类

public class Box<T> {
    private T content;
    ...
}

Box<Integer> intBox = new Box<>(123);
Box<String> stringBox = new Box<>("Hello, World!");

泛型方法

private Node root;
public <K extends Comparable<K>, V> void insert(K key, V value) {
    root = insert(root, key, value);
    ...
}

java 泛型 <K extends Comparable<K>, V> 是什么意思?


泛型接口

interface Generator<T> {
    T generate();

class StringGenerator implements Generator<String> {
    @Override
    public String generate() {
        return "Generated String";
    }
}

泛型参数

<T extends Comparable<T>

Comparable 是指类型 T 必须实现 Comparable 接口,即 T 之间能比较大小(Java 不支持运算符重载,只能通过 Comparable<T> 接口比较两个对象)

<T extends Comparable<? super T>>

实现 Comparable 接口;输入参数是同级类或父类(超类)。<? super T> 用于子类及后代类均可使用。