黑马程序员技术交流社区

标题: 泛型概述和基本使用 [打印本页]

作者: Kingchen    时间: 2016-6-11 23:23
标题: 泛型概述和基本使用
* A:泛型概述:限定集合存储的数据类型,Collection<E>其中E代表引用数据类型,如果加上了该引用数据类型,表示该集合中只能存储改类型对象,或者该类型的子类对象.
* B:泛型好处
        * 提高安全性(将运行期的错误转换到编译期)
        * 省去强转的麻烦
* C:泛型基本使用
        * <>中放的必须是引用数据类型
* D:泛型使用注意事项
        * 前后的泛型必须一致,或者后面的泛型可以省略不写(1.7的新特性菱形泛型)  
案例:
  1. package com.heima.generic;
  2. import java.util.ArrayList;
  3. import java.util.Iterator;
  4. import com.heima.bean.Person;
  5. public class Demo_Generic {

  6.         public static void main(String[] args) {
  7.                 //demo1();
  8.                 //int[] arr = new byte[5];                                                        //数组要保证前后的数据类型一致
  9.                 //ArrayList<Object> list = new ArrayList<Person>();        //集合的泛型要保证前后的数据类型一致
  10.                 //ArrayList<Object> list = new ArrayList<>();                //1.7版本的新特性,菱形泛型,前面定义了,后面不加表示和前面一致
  11.                 ArrayList<Object> list = new ArrayList<>();                        //泛型最好不要定义成Object,没有意义
  12.                 list.add("aaa");
  13.                 list.add(true);
  14.         }
  15.         public static void demo2() {
  16.                 ArrayList<Person> list = new ArrayList<Person>();
  17.         //        list.add(110);
  18.         //        list.add(true);
  19.                 list.add(new Person("张三", 23));
  20.                 list.add(new Person("李四", 24));
  21.                
  22.                 Iterator<Person> it = list.iterator();
  23.                 while(it.hasNext()) {
  24.                         //System.out.println(it.next());
  25.                        
  26.                         //System.out.println(it.next().getName() + "..." + it.next().getAge());//next方法只能调用一次,如果调用多次会将指针向后移动多次
  27.                         Person p = it.next();                       
  28.                         System.out.println(p.getName() + "..." + p.getAge());
  29.                 }
  30.         }
  31.         public static void demo1() {
  32.                 //这里编译通过,运行包ClassCastException(类转换异常)
  33.                 ArrayList list = new ArrayList();
  34.                 list.add(110);
  35.                 list.add(true);
  36.                 list.add(new Person("张三", 23));
  37.                 list.add(new Person("李四", 24));
  38.                
  39.                 Iterator it = list.iterator();
  40.                 while(it.hasNext()) {
  41.                         Person p = (Person)it.next();                       
  42.                         System.out.println(p.getName() + "..." + p.getAge());
  43.                 }
  44.         }
  45. }
复制代码








欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2