1.泛型的概念
泛型是JDK1.5之后引入的新特性。 它是一种在编译时预先确定元素类型的技术,是一种参数化类型技术。
2. 通用格式
1 < > 可以包含任意字母。 一般来说,E 用于泛型类,T 用于泛型方法。
2 这里只能定义参考文献类型,不能定义基本书籍类型。
3 < >您可以定义一个泛型或多个泛型
3. 泛型的优点
泛型最大的优点就是实现了Java程序的安全性。 泛型让编译器知道对象的限定类型是什么,即类型是在编译时确定的。
它消除了强制类型转换带来的安全风险,增加了代码的可读性,提高了代码的复用率,减少了很多出错的机会。 请看下面的代码:
c=();
c.add("蜀");
c.add("魏国");c.add("吴国");
c.add(15);c.add(1.5);
// 遍历集合
为(它=c。();
it.();){ oj=it.next();
//访问子类每个元素特有的方法
s=()oj;.out.("字符串的长度"+s.());}
由于集合中插入了不同类型的元素,因此运行程序后输出界面出现如下异常:
java.lang.:java.lang. 被转换为 java.lang。
虽然可以通过一一判断插入元素的类型并进行改造来解决上述异常,但是只需要使用大量的if-else语句,大大降低了程序的可读性,而且不利于扩展。 这种情况下最好使用泛型来解决上面的问题,请看下面的代码:
=();//判断泛型类型
c.add("蜀");
c.add("魏国");
c.add("吴果");
//c.add(15);//泛型类型确定后,编译时强制不允许添加其他类型的元素,否则会报编译错误。
//c.add(1.5);
//c.add(new("1001", "张三", 30));
=c.(); //获取迭代器对象
while(it.()){// 遍历集合
s=it.next();
.out.(s+"|"+s.());}
4. 定义泛型
1 泛型可以定义在类上,这样的类就成为泛型类
2 接口上可以定义泛型,这样的接口就成为泛型接口
确定泛型的位置:
a 确定实现类上的泛型类型
b 在调用时确定泛型类型
c 使用匿名内部类确定泛型
3 可以在方法上定义泛型。 这些方法成为通用方法。 泛型方法具有以下特点:
a 泛型方法独立于泛型类或泛型接口
b 泛型方法在调用方法时确定类型
c 一个泛型接口或泛型类可以有多个泛型方法。
d 一个泛型方法还可以定义多个泛型