📅  最后修改于: 2020-12-30 07:05:01             🧑  作者: Mango
像Java一样,Kotlin提供了称为Generics的高阶变量类型。在本章中,我们将学习Kotlin如何实现泛型,以及作为开发人员我们如何使用泛型库中提供的那些功能。在实现方面,泛型与Java非常相似,但是Kotlin开发人员引入了两个新的关键字“ out”和“ in”,以使Kotlin代码对开发人员而言更具可读性和易用性。
在Kotlin中,类和类型是完全不同的概念。按照示例,List是Kotlin中的类,而List
fun main(args: Array) {
val integer: Int = 1
val number: Number = integer
print(number)
}
在上面的代码中,我们声明了一个“整数”,随后我们将该变量分配给了一个数字变量。这是可能的,因为“ Int”是Number类的子类,因此类型转换在运行时自动发生,并且输出为“ 1”。
让我们进一步了解Kotlin中的泛型。每当我们不确定要在应用程序中使用的数据类型时,最好使用通用数据类型。通常,在Kotlin中,泛型由
fun main(args: Array) {
var objet = genericsExample("JAVA")
var objet1 = genericsExample(10)
}
class genericsExample(input:T) {
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
当我们想要将泛型分配给它的任何超类型时,则需要使用“ out”关键字,而当我们想要将泛型分配给它的任何子类型时,则需要使用“ in”关键词。在下面的示例中,我们将使用“ out”关键字。同样,您可以尝试使用“ in”关键字。
fun main(args: Array) {
var objet1 = genericsExample(10)
var object2 = genericsExample(10.00)
println(objet1)
println(object2)
}
class genericsExample(input:T) {
init {
println("I am getting called with the value "+input)
}
}
上面的代码将在浏览器中产生以下输出。
I am getting called with the value 10
I am getting called with the value 10.0
genericsExample@28d93b30
genericsExample@1b6d3586