什么是泛型
泛型就是一种参数化的类型,可以让我们编写的代码被很多种不同的对象所重用,
可以使同一段代码应用于多种类型。泛型支持多态
使用泛型的好处
package com.summary.generic;
import java.util.ArrayList;
import java.util.List;
public class ValidateDemo {
publicstaticvoidmain(String[] args) {
List list = newArrayList();
list.add(1);
list.add("a");
list.add("2");
int a= (Integer) list.get(0);
int b = (Integer) list.get(2);//是错误的,编译是成功,但是程序运行时会发生后面的异常//Exception in thread "main"java.lang.ClassCastException:
//java.lang.Stringcannot be cast to java.lang.Integer
Object obj = list.get(2);
int o= (Integer) obj;//错误的
}
}
看下面这个例题
package com.summary.generic;
import java.util.ArrayList;
import java.util.List;
public class GenericDemo {
publicstaticvoidmain(String[] args) {
List<Integer> list = newArrayList<Integer>();
list.add(1);
list.add(2);
list.add(3);
Object obj = list.get(0);
//String s = list.get(1);//错误的,这个时候会进行类型安全检查,Integer不能转换为String类型,出现下面的异常://
//Exception inthread "main" java.lang.Error: Unresolved compilation problem:
//Type mismatch:cannot convert from Integer to String
}
}
从上面的例题中可以看出,泛型可以解决类型的安全性问题,其主要原理是在类声明时加一个标识表示类中某个属性的类型或者是某个方法的返回值及参数类型。这样在类的声明或实例化时只要指定好需要的类型即可。