Kotlin 泛型通过提供类型参数和类型限制来提升代码的灵活性。以下是一些使用泛型提高代码灵活性的方法:
fun <T> printList(list: List<T>) {
for (item in list) {
println(item)
}
}
这个 printList
函数可以处理任何类型的列表,如 IntList、StringList 等。
where
子句为泛型类型参数设置约束,以确保类型满足特定的条件。这有助于提高代码的安全性和可读性。例如:fun <T> printList(list: List<T>, predicate: (T) -> Boolean) {
for (item in list) {
if (predicate(item)) {
println(item)
}
}
}
在这个例子中,我们为类型参数 T
添加了一个约束,要求它实现 Predicate<T>
接口。这使得我们可以将一个接受布尔值谓词的函数传递给 printList
函数。
fun <T> List<T>.printAll() {
for (item in this) {
println(item)
}
}
fun <T> T.printValue() {
println(this)
}
现在,我们可以为任何类型的列表调用 printAll
方法,以及为任何类型的对象调用 printValue
方法。
总之,Kotlin 泛型通过提供类型参数、类型限制、扩展函数和属性等功能,使得代码更加灵活、可重用和安全。