美文网首页kotlin
44.泛型擦除

44.泛型擦除

作者: 写代码的向日葵 | 来源:发表于2019-10-04 19:32 被阅读0次

1.代码如下:

package com.kotlin.zq.abcd

fun main(args: Array<String>) {
    val box1 = Box("张三")
    val box2 = Box(10)

    //class类型
    val clz1 = box1.javaClass.name
    val clz2 = box2.javaClass.name

    println(clz1)
    println(clz2)
}

class Box<T>(val thing: T)

2.输出结果如下

image.png

3. java获取泛型需要反射,相对来说,比较麻烦,kotlin提供了一种简单的方式,如下

fun main(args: Array<String>) {
    parseType("李四")
    parseType(100)
}

inline fun <reified T> parseType(thing: T) {
    val name = T::class.java.name
    println(name)
}
  • 输出结果如下


    image.png

解决泛型擦除方案:

  • 第一步:泛型前加reified 关键字
  • 第二步: 方法前加上inline关键字

相关文章

  • 44.泛型擦除

    1.代码如下: 2.输出结果如下 3. java获取泛型需要反射,相对来说,比较麻烦,kotlin提供了一种简单...

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

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

  • 泛型

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

  • java泛型

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

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

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

  • JAVA泛型和类型擦除

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

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

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

  • Kotlin语言(六):泛型

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

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

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

  • 15 泛型

    1.泛型类 2.泛型方法 3.擦除

网友评论

    本文标题:44.泛型擦除

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