【Java基础——19 泛型】

Java 泛型(Generics)是一种使得 Java 语言能够对多种数据类型进行操作的机制,而无需编写单独的类型特定代码。泛型通过在类、接口和方法中使用类型参数来实现这一点。

以下是泛型的一些关键点:

1.泛型类

  创建对象的时候确定具体类型

2.泛型方法

                  非静态: 泛型是根据类的泛型去匹配的

                  静态: 需要声明出自己独立的泛型

3.泛型接口 :

                  类实现接口的时候,直接确定类型

                  延续接口的泛型,等创建对象的时候再确定

4.泛型限定 :

        ?  (任意类型)

        ? extends E (只能接收 E 或者是 E 的子类)

        ? super E (只能接收 E 或者是 E 的父类)

 

1. 定义泛型类和接口

  • 你可以定义一个带有类型参数的类或接口,例如:
    public class Box<T> {
        private T t;
    
        public void set(T t) {
            this.t = t;
        }
    
        public T get() {
            return t;
        }
    }
    
    
    // 使用
    Box<Integer> integerBox = new Box<>();
    integerBox.set(10);
    Integer someInteger = integerBox.get();
    

2. 泛型方法

  • 泛型不仅可以用于类和接口,还可以用于方法。例如:
    public <T> void printArray(T[] inputArray) {
        for (T element : inputArray) {
            System.out.printf("%s ", element);
        }
        System.out.println();
    }
    

3. 通配符(Wildcard)

  • 使用通配符可以使泛型更加灵活。例如:? 表示未知类型,可以是任何类型。
  • public void printList(List<?> list) {
        for (Object element : list) {
            System.out.println(element);
        }
    }
    

4. 受限类型参数

  • ?  (任意类型)
  • ? extends E (只能接收 E 或者是 E 的子类)
  • ? super E (只能接收 E 或者是 E 的父类)
  • 可以对类型参数进行限制,例如:
    public <T extends Number> void processNumbers(List<T> list) {
        for (T number : list) {
            System.out.println(number.doubleValue());
        }
    }
    

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值