为什么要用到泛型?
举个例子,传统在List中添加三个car对象,其中程序员一不小心在其中添加了存在的cat对象,这时编译器也不会报错,这就引出了传统方法的两个问题
1、不能对加入到List集合中的数据类型进行约束,不太安全
2、遍历的时候,需要要进行类型转换,如果集合中数据大,影响效率
这时,我们就可以定义List<Car>,这样在编译的时候,如果发现类型不对,就会报错,而且在遍历时就可以直接取出Car而不是object
这时我们总结出泛型的好处
1、编译时,检查元素类型,大大提高了安全性
2、减少了类型转换次数,提高了效率
那么,什么是泛型
1、泛型又称参数化类型,是jdk5.0后出现的新特性,解决数据类型安全性问题
2、在类声明或实例化时只需要指定的具体类型即可
3、Java泛型可以保证如果程序在编译时没有发生警告,运行时就不会产生ClassCastExcption异常。
泛型的作用是:可以在类声明时通过一个标识表示类中某个属性的类型,或者是某个方法的返回值的类型,或者是参数类型。
泛型的声明
泛型的实例化
需要在类名后面指定类型参数的值(类型)
如:List<String> sr =new ArrayList<String>()。
自定义泛型类(难度较高)
class 类名<T,R,.....>{//.....表示可以有多个
成员
}
1、普通成员可以使用泛型
2、使用泛型的数组不能初始化
3、静态方法中不能使用类的泛型
4、泛型类的类型,是在创建对象时确定的
5、创建对象时没有指定默认是object