跟王老师学泛型:类型通配符
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); } } |
四、注意事项
读取List<?>的对象list中的元素时,永远是安全的,因为不管list的真实类型是什么,它包含的都是Object。
写入list中的元素时,不行。因为我们不知道c的元素类型,我们不能向其中添加对象。唯一的例外是null,它是所有类型的成员。
五、学习视频网址:
http://edu.51cto.com/course/course_id-6083.html
以上是关于跟王老师学泛型:类型通配符的主要内容,如果未能解决你的问题,请参考以下文章