java泛型变量的通配符使用

573
2024/9/15 12:31:22
栏目: 编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

Java泛型变量的通配符主要有两种:?? extends T。它们在泛型编程中非常有用,可以提高代码的灵活性和可读性。

  1. 无限制通配符(?): 无限制通配符表示未知类型。当你不关心具体的类型参数时,可以使用这个通配符。例如,当你需要一个可以接受任意类型的列表作为参数时,可以使用无限制通配符。
public void printList(List<?> list) {
    for (Object item : list) {
        System.out.println(item);
    }
}
  1. 上界通配符(? extends T): 上界通配符表示类型参数是T或其子类。当你需要一个可以接受特定类型及其子类的列表作为参数时,可以使用上界通配符。
public void processNumbers(List<? extends Number> numbers) {
    for (Number number : numbers) {
        // 处理数字
    }
}
  1. 下界通配符(? super T): 下界通配符表示类型参数是T或其父类。当你需要一个可以接受特定类型及其父类的列表作为参数时,可以使用下界通配符。
public void addIntegers(List<? super Integer> integers, Integer value) {
    integers.add(value);
}

总结:

  • 使用无限制通配符(?)表示未知类型,适用于不关心具体类型的场景。
  • 使用上界通配符(? extends T)表示类型参数是T或其子类,适用于需要接受特定类型及其子类的场景。
  • 使用下界通配符(? super T)表示类型参数是T或其父类,适用于需要接受特定类型及其父类的场景。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: java字符串数组定义的方法是什么