zoukankan      html  css  js  c++  java
  • java基础---泛型

    泛型设计的初衷就是为了减少手动的类型转换工作

    ===为什么需要泛型?没有泛型之前通用程序是如何设计的呢?
    泛型的目的就是减少强制类型转换出现的错误。
    如果没有泛型,比如一个集合就存法了两种元素Integer整数类型和字符串类型String类型。因为所有对象都是Object类的子类,这个时候你取出一个元素,你以为他是整数类型你强制类型转换,但是他是字符串类型这个时候就会抛异常ClassCast类型转换异常。而且这种异常是运行时异常还不是编译时异常,所以是我们不愿意看到的。
    所以引入泛型,由编译器在编译时期进行强制类型转换,避免我们手动类型转换可能出现的错误,比如刚刚的集合如果泛型是整数类型,添加string类型的话编译的时候就会出错。
     
     
     
    ===泛型是什么时候开始工作的?解释一下java泛型擦除
    编译的时候进行工作,编译的时候看到类型参数进行泛型擦除,插入强制类型转换的指令。
    定义两个ArrayList<String>和ArrayList<Integer>类型的集合arrayString和arrayInteger,当比较两个集合的类型的时候会发现类型是一样的。
    arrayString.getClass()==arrayInteger.getClass()
    在编译期的时候会发生类型擦除,都会变成ArrayList类型。原始类型就是在类型擦除之后在字节码中真正的类型。
     
     
     
  • 相关阅读:
    timerfd与eventfd
    boost--asio
    boost--线程
    boost--线程同步
    C++11--lambda表达式
    Java数据类型中String、Integer、int相互间的转换
    Jsoup网页抓取
    线程池
    Java
    用cmd来向mysql导入sql文件
  • 原文地址:https://www.cnblogs.com/buptyuhanwen/p/9409673.html
Copyright © 2011-2022 走看看