泛型:是一种特殊的类型,它把指定类型的工作推迟代码声明并实例化类或方法的时候进行。
泛型的格式: <数据类型>
泛型的好处:
1:把运行时可能发生的ClassCastException异常的问题提前到编译期间解决了。
2:去掉了黄线,优化了程序设计。
3:不需要在做强制类型转换。避免了类型转换异常。
Java 泛型的参数只可以代表类,不能代表个别对象。由于 Java 泛型的类型参数之实际类型在编译时会被消除,所以无法在运行时得知其类型参数的类型。Java 编译器在编译泛型时会自动加入类型转换的编码,故运行速度不会因为使用泛型而加快。Java 允许对个别泛型的类型参数进行约束,包括以下两种形式(假设 T 是泛型的类型参数,C 是一般类、泛类,或是泛型的类型参数):T 实现接口 I 。T 是 C ,或继承自 C 。一个泛型类不能实现Throwable接口。
泛型的例子:
import java.util.ArrayList;
import java.util.Iterator;
public class GenericDemo {
public static void main(String[] args) {
ArrayList<String> array = new ArrayList<String>();
array.add("haha");
array.add("hehe");
array.add("xixi");
//array.add(20);
//这里你还得对迭代器对象添加明确的数据类型。
Iterator<String> it = array.iterator();
while (it.hasNext()) {
//String s = (String) it.next();
String s = it.next();
System.out.println(s);
}
System.out.println("****************");
// String[] strArray = new String[3];
// strArray[0] = "haha";
// strArray[1] = "hehe";
// strArray[2] = 20;
}
}