使用泛型的好处以及定义和使用泛型的类
使用泛型的好处
创建集合对象时不使用泛型
好处:集合不使用泛型,默认类型就是Object类型,可以存储任意类型的数据
弊端:不安全,会引发异常
public static void main(String[] args) { ArrayList list = new ArrayList(); list.add("abc"); list.add(1); Iterator iterator = list.iterator(); while (iterator.hasNext()){ Object next = iterator.next(); System.out.println(next); String s = (String) next; System.out.println(s.length()); } }
集合中存储的Integer类型的值不能转换成为String类型,所以会报异常

创建集合对象时使用泛型
好处: 1、避免了类型转换的麻烦,存储的是没是类型取出的就是什么类型
2、把运行期(代码运行之后会抛出的异常)异常提升到了编译期(写代码的时候报错)。
弊端:泛型是什么类型就只能存储什么类型的数据
public static void main(String[] args) { ArrayList<String> list = new ArrayList<>(); list.add("abc"); list.add("1"); Iterator<String> iterator = list.iterator(); while (iterator.hasNext()){ String next = iterator.next(); System.out.println(next); System.out.println(next.length()); } }

定义和使用泛型的类
定义一个含有泛型的类,模拟ArrayList集合
泛型是一个未知的数据类型,当我们不确定什么什么数据类型的时候,可以使用泛型
泛型可以接收任意的数据类型,可以使用Integer ,String, Student...
创建对象的时候确定泛型的数据类型
public static void main(String[] args) { //不写默认就是Object类型 GenericClass gc = new GenericClass<>(); gc.setName("任意类型"); Object name = gc.getName(); System.out.println(name); //创建对象,泛型使用Integer GenericClass<Integer> gc1 = new GenericClass<>(); gc1.setName(123); Integer name1 = gc1.getName(); System.out.println(name1); //创建对象,泛型使用String GenericClass<String> gc2 = new GenericClass<>(); gc2.setName("张三"); String name2 = gc2.getName(); System.out.println(name2); }
运行结果:


浙公网安备 33010602011771号