reified 关键字在 Kotlin 中如何运作?
“reified”是一种特殊的关键字,它能帮助 Kotlin 开发人员在运行时访问与类相关的信息。“reified”仅能与inline函数一起使用。当“reified”关键字被使用时,编译器将该函数的字节码复制到该函数被调用的代码的每一节中。通过这种方式,泛型类型 T 将被分配给作为参数获得的值的类型。
示例
在这个示例中,我们将看到“reified”如何有助于重复使用我们的代码并使用同一个函数来执行类似的操作,无论其传递的参数如何。
对于这个示例,我们创建了一个 Inline 函数,并且我们传递一个泛型“reified”参数 T,并且从 Kotlin 的main()中,我们使用不同的参数多次调用myExample()。
// Declaring Inline function inline fun <reified T> myExample(name: T) { println("
Name of your website -> "+name) println("
Type of myClass: ${T::class.java}") } fun main() { // calling func() with String myExample<String>("www.tutorialspoint.com") // calling func() with Int value myExample<Int>(100) // calling func() with Long value myExample<Long>(1L) }
输出
它将生成以下输出 −
Name of your website -> www.tutorialspoint.com Type of myClass: class java.lang.String Name of your website -> 100 Type of myClass: class java.lang.Integer Name of your website -> 1 Type of myClass: class java.lang.Long
广告