泛型
什么是泛型:泛型是一种约束,检查数据类型,泛型的使用是为了避免出现classcastException异常,
通常在集合中使用,对于声明一个集合eg List,将数据存储进去的时候,不可以保证记住每个数据的属性,在读取的时候就会可能出现错误,
使用泛型可以定义存储的类型
1 /** 2 * 泛型Generic的使用与说明: 3 * 泛型相当于标签: 4 * 在集合中使用泛型: 5 * 1:在实例化集合类时,可以指明具体的类型 6 * 2:泛型的类型必须是类,不可以是基本数据类型,如果是使用包装类 7 * 8 * 9 * 10 * 11 */ 12 public class GenericTest { 13 @Test 14 public void test1(){ 15 ArrayList arrayList=new ArrayList(); 16 arrayList.add(12); 17 arrayList.add(18); 18 arrayList.add(78); 19 arrayList.add(123); 20 //问题1:类型不安全 21 arrayList.add("hpp"); 22 for (Object obj:arrayList){ 23 //问题2:可能出现类型转换异常 24 int stu= (Integer) obj;//虽然强转编译不报错,但是运行时异常 25 System.out.println(stu); 26 } 27 } 28 @Test 29 public void test2(){ 30 ArrayListarrayList=new ArrayList (); 31 arrayList.add(121); 32 arrayList.add(1); 33 arrayList.add(148); 34 arrayList.add(171); 35 arrayList.add(521); 36 //编译时就会进行类型检查,保证安全, 37 // arrayList.add("hpp"); 38 //迭代器遍历 39 Iterator iterator=arrayList.iterator(); 40 while (iterator.hasNext()){ 41 System.out.println(iterator.next()); 42 } 43 //增强for循环遍历 44 for (Integer obj:arrayList){ 45 System.out.println(obj); 46 } 47 } 48 @Test 49 public void test3(){ 50 //对于MAP接口使用泛型的情况 51 Map map=new HashMap (); 52 map.put("hpp",23); 53 map.put("huang",13); 54 } 55 }