zoukankan      html  css  js  c++  java
  • Java泛型简单理解

    优点1:

    没有使用泛型,向list集合中添加非字符串,运行时会报错:类型不匹配

    ObjectList.java:

     1 package cn.nxl2018;
     2 import java.util.ArrayList;
     3 import java.util.List;
     4 public class ObjectList {
     5     public List getList() {
     6         List list = new ArrayList();
     7         list.add(new Integer(20));//此句会报错:类型不匹配
     8         list.add("b");
     9         list.add("c");
    10         return list;
    11     }
    12 }

    GenericityDemo.java

     1 package cn.nxl2018;
     2 import java.util.List;
     3 public class GenericityDemo {
     4     public static void main(String[] args) {
     5         // TODO Auto-generated method stub
     6         ObjectList objectList = new ObjectList();
     7         List list=objectList.getList();
     8         String string = (String)list.get(1);
     9         System.out.println(string);
    10     }
    11 }

    使用泛型:

    如果指定了list集合里放的是String类型的数据,在编辑代码的时候,add()方法处就会自动报错指出类型不匹配(下图所示)。也就是说当为list集合添加元素时,编译器会根据参数化类型来判断添加元素的数据类型是否合法,如果该类型是非参数化类型,编译器将给出错误提示信息。正常情况下这是在代码运行时才会提示异常错误,然而在编辑的时候就能提示出,很显然这加快了我们编程的效率。


    优点2: 没有使用泛型的情况下,用get()方法获取list中的数据时,还需要进行数据转换,比较麻烦。

    1 List list=objectList.getList();
    2 String string = (String)list.get(1);//Object类型转换为String类型

    如果使用泛型去指定获取数据的类型,那么在用get()获取list中的数据时,返回的值的类型直接就是指定的String类型,省去了将原始Object类型数据转换为String类型的麻烦。

    1 List<String>  list=objectList.getList();
    2 String string = list.get(0);

    附:为了普遍性,传统的List类的add()方法中的参数类型均是Objext类型,对应的get()返回值的类型也是Object类型。

    关联CSDN博客:https://blog.csdn.net/m0_38022608/article/details/80197701

  • 相关阅读:
    Java学习
    Java学习
    Java学习
    Java学习
    Java学习
    Java学习
    Java学习
    Citrix 挂经思考
    eBay OA挂经反思
    roblox OA ancestor names 根据roman to int改的
  • 原文地址:https://www.cnblogs.com/qikeyishu/p/8992461.html
Copyright © 2011-2022 走看看