泛型类型参数
泛型允许你定义带类型形参的类型,当这种类型的实例被创建出来的时候,类型形参被替换成称为类型实参的具体类型。比如有一个list类型的变量,弄清它能存储哪种事物是很有意义的。类型形参可以准确地进行描述,和一般类型一样,kotlin编译器也能推导出类型实参

因为传给listOf的值是字符串,编译器推导出你在创建一个List<String>。若你想创建一个空列表,此时编译器无法推导,所以要显式声明类型。就创建列表来说,可以选择在变量声明中说明泛型的类型,也可以在创建列表的函数中说明类型实参

泛型函数和属性
若希望一个使用列表的函数在任何列表上都能使用,需要编写一个泛型函数,泛型函数有它自己的类型实参,这些类型实参在每次函数调用时都必须替换成具体的类型实参

第一个<T>是类型形参,第二个<T>是接收者的类型形参,第三个<T>是返回类型的类型形参。当你在一个具体的列表上调用这个函数时可以显式指定类型实参,但大部分情况编译器会帮你推导出来

本文详细介绍了Kotlin中的泛型类型参数,包括它们如何在编译时帮助类型安全,以及如何在函数和类中声明和使用。泛型函数和属性允许编写通用代码,而类型参数约束确保了类型兼容性。此外,讨论了类型参数的擦除以及实化类型参数的概念,实化类型参数仅在内联函数中可用,允许在运行时检查类型。最后,展示了实化类型参数在类型检查、反射和Java API适配中的应用,并明确了其使用限制。
最低0.47元/天 解锁文章
1197

被折叠的 条评论
为什么被折叠?



