
package demo01;
import java.util.ArrayList;
import java.util.Iterator;
public class Demo03Generic {
public static void main(String[] args) {
show01();
show02();
}
/*
创建集合对象:使用泛型
好处:
1.避免了类型转换的麻烦,存储的是什么类型,取出的就是什么类型
2.把运行期异常(代码运行之后抛出的异常),提升到了编译期(写代码的时候会报错)
*/
private static void show02() {
ArrayList<String> list=new ArrayList<>();
list.add("abc");
list.add("12");
//使用迭代器遍历list集合
Iterator<String> it = list.iterator();
while(it.hasNext()){
String s = it.next();
System.out.println(s);
}
}
/*
创建集合对象,不使用泛型
好处:
集合不使用泛型,默认的类型就是Object类型,可以存储任意类型的数据
弊端:
不安全,会引发异常
*/
private static void show01() {
ArrayList list=new ArrayList();
list.add("花花");
list.add(22);
//使用迭代器遍历list
Iterator it=list.iterator();
// boolean b = it.hasNext();
// System.out.println(b);
// Object next = it.next();
// System.out.println(next);
while(it.hasNext()){
Object obj = it.next();
System.out.println(obj);
//想要使用String类特有的方法,length获取字符串的长度,不能使用多态Object obj="花花" ;
//需要向下转型
//会抛出类型转换异常ClassCastException,不能把Integer类型转换为String类型
// String s = (String) obj;
// System.out.println(s.length());
}
}
}
本文探讨了Java中泛型的使用,展示了如何通过泛型增强集合的安全性和类型检查,避免了运行时类型转换异常,提高了代码的健壮性和可读性。
2万+

被折叠的 条评论
为什么被折叠?



