登录
首页 >  文章 >  java教程

Java 类型通配符的具体有什么作用?

时间:2024-10-25 20:28:53 460浏览 收藏

一分耕耘,一分收获!既然打开了这篇文章《Java 类型通配符的具体有什么作用?》,就坚持看下去吧!文中内容包含等等知识点...希望你能在阅读本文后,能真真实实学到知识或者帮你解决心中的疑惑,也欢迎大佬或者新人朋友们多留言评论,多给建议!谢谢!

Java类型通配符(?)允许编写代码时对类型不敏感。它在泛型集合和通配方法中用途广泛:在泛型集合中,可创建保存不同类型元素的集合,例如:List<?> list = new ArrayList<>()。在通配方法中,可创建对类型不敏感的方法,例如:public static <T> void printList(List<? extends T> list)。

Java 类型通配符的具体有什么作用?

Java 类型通配符的用途

类型通配符是在 Java 中一种通用的类型参数,它允许我们编写代码时对类型不敏感。这在泛型集合和通配方法中特别有用。

语法

类型通配符使用 ? 符号表示。它可以限制在它被使用的类型参数。语法如下:

<? extends Type>
<? super Type>
  • ? extends Type:匹配 Type 类型的子类型或本身。
  • ? super Type:匹配 Type 类型的超类型或本身。

用途

1. 在泛型集合中

类型通配符可用于创建可以保存不同类型元素的泛型集合。例如:

List<?> list = new ArrayList<>();
list.add("Hello");
list.add(10); // 编译器不会报错

由于列表的类型参数 (?) 未指定,因此我们可以添加任何类型的数据。

2. 在通配方法中

类型通配符可用于创建对类型不敏感的通配方法。例如:

public static <T> void printList(List<? extends T> list) {
  for (T item : list) {
    System.out.println(item);
  }
}

此方法可以打印任何类型的列表,因为类型参数 T 由通配符 ? extends T 进行了限制。

实战案例:

假设我们有一个包含各种形状的列表 shapes

List<Shape> shapes = new ArrayList<>();
shapes.add(new Circle());
shapes.add(new Square());

现在,我们可以使用类型通配符创建一个方法来计算这些形状的总面积:

public static double calculateTotalArea(List<? extends Shape> shapes) {
  double totalArea = 0;
  for (Shape shape : shapes) {
    totalArea += shape.getArea();
  }
  return totalArea;
}

这个方法可以计算任何类型形状的总面积,因为它只访问 Shape 类中定义的方法。

理论要掌握,实操不能落!以上关于《Java 类型通配符的具体有什么作用?》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>