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

  • 相关阅读:
    联赛模拟测试19
    联考Day5
    联赛模拟测试18(A.施工未补)
    题解 CF960G 【Bandit Blues】
    题解 P5518 【[MtOI2019]幽灵乐团 / 莫比乌斯反演基础练习题】
    概率与数学期望笔记
    题解 P3704 【[SDOI2017]数字表格】
    主定理
    【题解】Hikari与组合数
    【题解】P2303 [SDOI2012] Longge 的问题
  • 原文地址:https://www.cnblogs.com/qikeyishu/p/8992461.html
Copyright © 2011-2022 走看看