美文网首页Android架构
MVP系列文章(五)- 泛型擦除

MVP系列文章(五)- 泛型擦除

作者: 世道无情 | 来源:发表于2018-07-15 11:29 被阅读101次

前言

MVP系列文章
MVP系列文章(一) - MVC 与 MVP
MVP系列文章(二) - 优化attach()、detach()方法
MVP系列文章(三) - 动态代理优化每次判断 View != null
MVP系列文章(四)- GC回收原理分析
MVP系列文章(五)- 泛型擦除
MVP系列文章(六)- 代码架构与运行时架构
MVP系列文章(七)- 知识梳理

1. 泛型擦除

编译器在运行的时候,会把我们的泛型进行擦除,一般是针对系统的泛型,如List<String>、List<Integer>。而我们自己指定的泛型信息一般都是会被保留的,如List<UserInfo>、List<BasePresenter>等自定义的类型;

如下:
List<String> list = new ArrayList() ;
list.add("1") ;
list.add("2") ;

上边的泛型在没有编译之前,起到一个约束作用,也就是说,给List集合限定泛型是String类型,写代码的时候就只能是同一类型,就只能 add("1"),而不能 add(1),这样 add(1)会报错;

在编译成字节码后,泛型会进行擦除,就会变成 List list = new ArrayList();

相关文章

  • MVP系列文章(五)- 泛型擦除

    前言 MVP系列文章MVP系列文章(一) - MVC 与 MVPMVP系列文章(二) - 优化attach()、d...

  • 【进阶之路】Java的类型擦除式泛型

    【进阶之路】Java的类型擦除式泛型 Java选择的泛型类型叫做类型擦除式泛型。什么是类型擦除式泛型呢?就是Jav...

  • 泛型

    泛型用于编译时期,确保类型的安全 在运行时,会将泛型去掉,class文件是不带泛型的,这个称为泛型的擦除,擦除是为...

  • java泛型

    java的泛型是"伪泛型",为什么这么说。因为泛型只是作用在编译之前,编译之后,泛型都被擦除了(类型擦除)。所以说...

  • Android 开发也要掌握的Java知识 - Java泛型

    如果需要看泛型擦除Java泛型擦除 1.Java泛型有什么用?为啥要使用泛型? Java中数组的类型是定义的时候就...

  • JAVA泛型和类型擦除

    什么是类型擦除 Java是使用擦除来实现泛型的。使用泛型后在运行时任何具体的类型信息都被擦除了,关于泛型的处理都是...

  • 详解Java泛型之4——一个例子理解泛型带来的好处

    前面我介绍了关于泛型、通配符以及泛型擦除的相关知识点,大家可以参考以下文章: 详解Java泛型之1——入门泛型必懂...

  • 泛型 & 注解 & Log4J日志组件

    掌握的知识 : 基本用法、泛型擦除、泛型类/泛型方法/泛型接口、泛型关键字、反射泛型(案例) 泛型 概述 : 泛型...

  • Kotlin语言(六):泛型

    1、泛型类 2、泛型函数 3、泛型上限 4、泛型擦除 5、泛型投射 6、星号投射

  • Java如何在运行时获取泛型的类型

    Java泛型是伪泛型,会在编译完成时进行类型的擦除,我们无法在运行时获取泛型参数的具体类型(类型擦除会被替换成泛型...

网友评论

本文标题:MVP系列文章(五)- 泛型擦除

本文链接:https://www.haomeiwen.com/subject/xknnuftx.html