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.png3. 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关键字
网友评论