跟王老师学泛型:类型通配符

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了跟王老师学泛型:类型通配符相关的知识,希望对你有一定的参考价值。

类型通配符

主讲教师:王少华 QQ群:483773664

学习目标

1 类型通配符的使用

2 使用类型通配符的方法,注意事项

一、什么是通配符

通配符 :是一种表示未知类型的类型约束,用问号表示。

比如,Collection<?>,将问号作为类型传给集合,表示是未知类型元素的集合。这个问号(?)被称为通配符,它的元素类型可以匹配任何类型。

二、需求

假设需求定义一个方法,该方法里有一个集合形参,集合中的元素类型是不确定的。那我们应该怎么定义?

三、实现

1
2
3
4
5
6
7
public class Needs {
    public void test(List<?> list){
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
    }
}

1
2
3
4
5
6
7
8
9
public class Test {
    public static void main(String[] args) {
        List<String> c = new ArrayList<String>();
        List<Integer> c1 = new ArrayList<Integer>();
        Needs needs = new Needs();
        needs.test(c);
        needs.test(c1);
    }
}

四、注意事项

  1. 读取List<?>的对象list中的元素时,永远是安全的,因为不管list的真实类型是什么,它包含的都是Object。

  2. 写入list中的元素时,不行。因为我们不知道c的元素类型,我们不能向其中添加对象。唯一的例外是null,它是所有类型的成员。

技术分享

五、学习视频网址:

http://edu.51cto.com/course/course_id-6083.html








以上是关于跟王老师学泛型:类型通配符的主要内容,如果未能解决你的问题,请参考以下文章

跟王老师学泛型:限制通配符

跟王老师学泛型使用泛型

跟王老师学泛型:Java自动装箱与拆箱

跟王老师学泛型:定义泛型接口及实现

跟王老师学泛型: 自定义带泛型声明的方法

跟王老师学泛型:泛型的应用