Cccc杨

导航

Java中的泛型

泛型:

  一种未知的数据类型,当不知道使用什么数据类型的时候可以使用泛型。

  也可以看做是一个变量,用来接收数据。

    例如: E e :element 元素

        T t  :type 类型

 

ArrayList集合在定义的时候,不知道集合中会存那些数据类型的数据,所以类型使用泛型E定义未知数据。

例如:

  public class ArrayList<E>(

    public boolean add(E e){)

    public E get(int index){}    

  )


ArrayList<String> list = new ArrayList<String>();
//创建集合对象的时候,就会确定泛型的数据类型

  public class ArrayList<String>(

    public boolean add(String e){)

    public String get(int index){}    

  )

 

 

使用泛型和不使用泛型的区别:

    
/*
创建集合对象 不使用泛型。

好处:
默认的类型就是object类型。可以存储任意类型的数据。
弊端:
集合不安全
*/

  private static void method2() { /*使用泛型的好处:避免了类型的转换的麻烦,存储的是什么类型取出的就是什么类型。 把运行异常(代码运行之后的异常),提升到了编译期。 */ ArrayList<String> list = new ArrayList<>(); list.add("abc"); // list.add(1); } private static void method1() { ArrayList list = new ArrayList(); list.add(1); list.add("b"); //获取迭代器 Iterator it = list.iterator(); //使用迭代器中的方法hasNext和next遍历集合。 while (it.hasNext()){ Object obj = it.next(); System.out.println(obj); /*想要使用string类特有的方法length获取字符串的长度 但是多态,多态不能使用子类特有的方法。只能向下转型。 */ String s = (String) obj; System.out.println(s.length());//ClassCastException 抛出异常 因为一个int一个string。 } }

 

posted on 2021-03-01 21:29  Cccc杨  阅读(37)  评论(0编辑  收藏  举报