具有默认值的数组的通用函数

时间:2019-05-31 13:07:00

标签: generics kotlin

在编写试图从外部源读取字符串并提供默认值(如果无法到达源)的函数时,我可以编写如下函数:

fun <V : String?> getString(defValue: V): V {
    // ...
}

val s1: String = getString("Default")
val s2: String? = getString(null)

由于String是最终类,因此此处不能使用其他类型。我什至不必提供s1s2的类型,因为Kotlin可以根据很好的默认值的类型自行找出它们。但是,如果我想编写一个IntArray这样的函数,则不能编写类似以下的函数:

fun <V : IntArray?> getIntArray(defValue: V): V { ... }

编译器在这里说:

  

类型参数的上限不能是数组

还有其他方法可以实现这一目标吗?

0 个答案:

没有答案