1.泛型是怎么来的?
想要模仿数组数据类型检查
数组的好处:在编译时期就检查数据的类型 ,如果不是要求的类型编译器就报错。
2.泛型通常结合着集合一起使用。
3.引入泛型 - 主要目的是想通过泛型来约束集合中元素的类型。
4.泛型的好处:可以把报错的时机提前,在编译器就报错,而不是运行后才抛出异常
在向集合中添加元素,会先检查元素的数据类型,不是要求的类型会发生编译错误
5.<type>--type的值应该如何写?
需要查看要存放点数据类型是什么,依据类型来定义,
但是type必须是引用类型,不能是基本类型。
package cn.sk.generic;
import java.util.ArrayList;
import java.util.List;
/**本类用于测试泛型的优点*/
public class TestGeneric1 {
public static void main(String[] args) {
//1.创建一个用来存放String类型数据的长度为5的数组s
String[] s = new String[5];
s[2] = "泡泡";
s[4] = "涛涛";
/*s[0] = 1;
s[1] = 2.2;
s[3] = 'a';*/
List list = new ArrayList();//注意需要导包:import java.util.List;
list.add("江江");
list.add(1);
list.add(8.8);
list.add('a');
System.out.println(list);
List<String> list2 = new ArrayList<String>();
list2.add("s");//约束了类型以后,只能传String类型
List<Integer> list3 = new ArrayList<Integer>();
list3.add(100);
list3.add(200);
System.out.println(list3);
}
}
6.泛型可以实现通用代码的编写,使用E表示元素的类型是Element类型。
7.泛型的语法要求:如果在方法上使用泛型,必须两处同时出现 一个是传入的参数的类型,
另一个是方法声明上返回值类型之前的泛型。
ackage cn.sk.generic;
/**本类用于测试泛型的优点2*/
public class TestGeneric2 {
public static void main(String[] args) {
Integer[] a ={1,2,3,4,5};
String[] b = {"上","山","打","老","虎"};
Double[] c = {6.0,6.6,6.66,6.666};
print(a);
print(b);
print(c);
}
public static <E> void print(E[] a){
for (E o:a){
System.out.println(o);
}
}
}