泛型讲解及自定义泛型

泛型是 Java 中一个强大的特性,它允许我们在编写代码时使用类型参数,而不是具体的类型。使得我们可以编写更灵活、可复用的代码,避免重复代码。

简单来说,泛型就是一种参数化类型,使得代码可以适用于多种数据类型,而无需为每种数据类型都编写一遍代码。

泛型的优点:

  • 类型安全: 编译器可以在编译期检查类型错误,避免运行时类型转换异常(ClassCastException)。
  • 代码重用: 通过泛型,可以编写更加通用的代码,减少重复代码。
  • 提高可读性: 泛型使得代码更加清晰易懂。

泛型的使用场景:

  • 集合框架: Java的集合框架(如List、Set、Map)广泛使用了泛型,使得集合中的元素类型更加明确。
  • 自定义类和接口: 可以定义自己的泛型类和接口,以满足特定的需求。
  • 方法: 可以定义泛型方法,使方法能够处理不同类型的参数。

自定义泛型类

如何定义泛型类?

在类名后面用尖括号<>括起来,尖括号内就是类型参数。

public class GenericClass<T> {
    private T data;

    public void setData(T data) {
        this.data = data;
    }

    public T getData() {
        return data;
    }
}

泛型类的使用:

GenericClass<Integer> integerGeneric = new GenericClass<>();
integerGeneric.setData(100);

GenericClass<String> stringGeneric = new GenericClass<>();
stringGeneric.setData("Hello");

 

自定义泛型方法

如何定义泛型方法?

在返回值类型之前使用尖括号<>括起来,尖括号内就是类型参数。

public class GenericClass {
    public static <E> void printArray(E[] inputArray) {
        for (E element : inputArray) {
            System.out.println(element);
        }
    }
}

泛型方法的使用:

Integer[] intArray = { 10, 20, 30 };
String[] strArray = { "Hello", "World" };

GenericClass.printArray(intArray);
GenericClass.printArray(strArray);

泛型通配符

什么是泛型通配符?

泛型通配符使用?表示,可以用来表示任意类型。

  • 无限定通配符: <?> 表示任意类型。
  • 上界限定通配符: <? extends T> 表示T类型或其子类。
  • 下界限定通配符: <? super T> 表示T类型或其父类。

泛型通配符的使用:

List<?> list1; // 任意类型
List<? extends Number> list2; // Number或其子类
List<? super Integer> list3; // Integer或其父类

 

 

要点总结:

  • 泛型使用尖括号<>来定义类型参数。
  • 泛型可以应用于类、接口和方法。
  • 泛型通配符?可以表示任意类型。
  • 10
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值