集合中的泛型
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了集合中的泛型相关的知识,希望对你有一定的参考价值。
为什么要有泛型?- 解决元素存储的安全问题(集合没有泛型时,任何类型都可以添加进集合,类型不安全)
- 解决获取数据元素时,需要类型强转的问题(读取集合元素强转时很繁琐,可能会报 ClassCastException)
public class TestGeneric {
@Test
public void test() {
List list = new ArrayList();
list.add(78);
list.add(91);
list.add(65);
list.add(new String("cdf"));// 任何类型都可以添加进集合,而本意只想添加 Integer 类型
Iterator iterator = list.iterator();
while (iterator.hasNext()) {
int i = (Integer) iterator.next();// 有 ClassCastException 的隐患
System.out.println(i);
}
}
}
使用泛型解决以上问题:
public class TestGeneric {
@Test
public void test() {
List<Integer> list = new ArrayList<Integer>();
list.add(78);
list.add(91);
list.add(65);
// list.add(new String("cdf")); 此时只能添加 Integer 类型,添加 String 类型数据会报错
Iterator<Integer> iterator = list.iterator();
while (iterator.hasNext()) {
int i = iterator.next();// 没有报 ClassCastException 隐患
System.out.println(i);
}
}
}
注意:泛型只能填引用类型;JDK 7.0之后,后面的尖括号内的泛型可以省略
以上是关于集合中的泛型的主要内容,如果未能解决你的问题,请参考以下文章