java中泛型的基本使用

泛型的基本使用

  1. 泛型类: 你可以定义一个泛型类,其中包含一个或多个类型参数。这些类型参数用在类定义中,并且在创建该类的对象时指定具体的类型。

    1public class Box<T> {
    2    private T item;
    3
    4    public void set(T item) {
    5        this.item = item;
    6    }
    7
    8    public T get() {
    9        return item;
    10    }
    11}
    12
    13// 使用泛型类
    14Box<String> stringBox = new Box<>();
    15stringBox.set("Hello, World!");
    16String content = stringBox.get();  // 编译器自动类型检查
  2. 泛型方法: 你可以在不修改整个类的情况下定义泛型方法,这使得你可以在非泛型类中使用泛型功能。

    1public class Utility {
    2    public static <T> void swap(T[] array, int i, int j) {
    3        T temp = array[i];
    4        array[i] = array[j];
    5        array[j] = temp;
    6    }
    7}
    8
    9// 使用泛型方法
    10Integer[] numbers = {1, 2, 3};
    11Utility.swap(numbers, 0, 2);  // 交换数组中的元素
  3. 泛型接口: 接口也可以是泛型的,这意味着它们可以被实现为特定的类型。

    1public interface Stack<T> {
    2    void push(T item);
    3    T pop();
    4}
    5
    6// 实现泛型接口
    7class SimpleStack<T> implements Stack<T> {
    8    private List<T> items = new ArrayList<>();
    9
    10    @Override
    11    public void push(T item) {
    12        items.add(item);
    13    }
    14
    15    @Override
    16    public T pop() {
    17        if (items.isEmpty()) throw new EmptyStackException();
    18        return items.remove(items.size() - 1);
    19    }
    20}

泛型的限定

  1. 上界: 你可以限制类型参数只能接受某些特定类型的子类型。例如,使用 extends 关键字来指定上界。

    1public class UpperBound<T extends Number> {
    2    private T item;
    3
    4    public void set(T item) {
    5        this.item = item;
    6    }
    7
    8    public T get() {
    9        return item;
    10    }
    11}
  2. 下界: 你可以使用 super 关键字来指定下界,这通常用于写入数据的情况,比如集合。

    1public static <T> void printAll(List<? super T> list, T item) {
    2    list.add(item);
    3}

通配符

如果你不确定要使用的具体类型,或者希望增加灵活性,可以使用通配符(?)。通配符可以用在参数列表中,表示任何类型。

 
1public static void printAll(List<?> list) {
2    for (Object obj : list) {
3        System.out.println(obj);
4    }
5}
  • 11
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值