Kotlin 泛型中"*"和"Any"的区别
kotlin mobile developmentapps/applications更新于 2026/1/5 1:22:17
在任何编程语言中,泛型都是一个强大的功能,开发者可以使用它创建自定义数据类型,从而以不同的方式操作程序。在 Kotlin 中,我们可以通过多种方式定义泛型。
在本文中,我们将演示 Kotlin 中"*"和"Any"关键字的区别。
当我们使用"*"定义集合时,它应该只包含该类型的对象。集合中的数据类型不应混用。
如果使用"Any",则可以混合搭配数据类型,这意味着集合中可以包含多种数据类型。
示例 - "*" 的用法
fun main(args: Array<String>) {
val num = arrayOf(1, 2, 3, 4)
ArrayUtil().findElement(num,2)
}
class ArrayUtil(){
// 将泛型数组传递给函数
fun findElement(array:Array<*>,element:Int){
for(i in array.indices){
if(array[i]==element){
println("Element found at " +i)
}
}
}
}
输出
它将生成以下输出:
Element found at 1
示例 - "Any" 的使用
fun main(args: Array<String>) {
var objet = genericsExample<String>("JAVA")
var objet1 = genericsExample<Int>(10)
}
class genericsExample<Any>(input:Any?) {
init {
println("I am getting called with the value "+input)
}
}
输出
它将生成以下输出
I am getting called with the value JAVA I am getting called with the value 10

