📜  Java泛型-无界通配符(1)

📅  最后修改于: 2023-12-03 15:02:05.100000             🧑  作者: Mango

Java泛型-无界通配符

Java泛型是一种参数化类型,它可以让代码更加通用、类型安全、且易于理解和维护。无界通配符是Java泛型中的一种特殊类型,它可以适用于不确定泛型参数类型的情况。

什么是无界通配符

无界通配符指的是一个不确定类型的泛型参数,使用通配符“?”来表示。定义一个无界通配符的方法如下:

public void print(List<?> list) {
    for (Object obj : list) {
        System.out.println(obj);
    }
}

使用无界通配符的方法:

List<Integer> intList = Arrays.asList(1, 2, 3);
List<String> strList = Arrays.asList("a", "b", "c");

print(intList); //打印1, 2, 3
print(strList); //打印a, b, c

无界通配符可以适用于不确定泛型参数类型的情况,例如在打印方法中,无法确定要打印的是什么类型,使用无界通配符可以让方法更加通用。

无界通配符的优势

使用无界通配符有两个重要优势:

  • 可以适用于不确定泛型参数类型的情况,使代码更加通用
  • 可以保证类型安全,避免了类型转换的风险
无界通配符的限制

无界通配符虽然可以适用于不确定泛型参数类型的情况,但它也有一些限制:

  • 无法添加元素到List<?>中,因为无法确定元素类型
  • 只能使用Object的方法,因为无法确定元素类型
总结

无界通配符是Java泛型中的一种特殊类型,它可以适用于不确定泛型参数类型的情况。使用无界通配符可以让代码更加通用和类型安全,但同时也有一些限制。在开发中,应该选择合适的泛型类型,以满足实际需求。