泛型概述

泛型:是JDK5中引用的特性,它提供了编译时类型安全检测机制,该机制允许在编译时检测到非法的类型,它的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数.

一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参.那么参数化类型怎么理解呢?

顾名思义,就是将类型由原来的具体的类型参数化,然后在使用/调用时传具体的类型

这种参数类型可以用在类、方法和接口中,分别被称类泛型类、泛型方法、泛型接口

泛型的定义格式:

<类型>:指定一种类型的格式,这里的类型可以看成是形参

<类型1,类型2...>:指定多种类型的格式,多种格式之间用逗号隔开。这里的类型可以看成是形参

将来具体调用时给定的类型可以看成是实参,并且实参的类型只能是引用数据类型 

泛型的好处:

把运行时期的问题提前到了编译期间

避免了强制类型转换

package com.itheima_94;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

/*
需求:Collection集合存储字符串并遍历
*/
public class GenericDemo {
public static void main(String[] args) {
//创建集合对象
// Collection c = new ArrayList<>();
Collection<String> c = new ArrayList<String>();
//添加元素
c.add("hello");
c.add("world");
c.add("java");
// c.add(100);
//遍历集合
Iterator<String> it = c.iterator();
// Iterator it = c.iterator();
while (it.hasNext()){
// Object obj = it.next();
// System.out.println(obj);
// String s = (String)it.next();//ClassCastException
String s = it.next();
System.out.println(s);
}
}
}