Generics 如何定义扩展可为null但本身不可为null的泛型参数

Generics 如何定义扩展可为null但本身不可为null的泛型参数,generics,kotlin,nullable,Generics,Kotlin,Nullable,在Kotlin中,有没有一种方法可以定义一个不可为null的泛型参数,它是可为null类型的子类型? 我想我可以做一些像 class nullableToNonnullable<A: Any?, B> where B: A, B: Any { fun toNonNull(a: A): B } 我不知道你到底想做什么,但是 (可为null的A)->(非null的A)函数 及 fun toNonNull(a:a?):B 具有B的解决方案将使用未经检查的强制类型转换,除非它们是内

在Kotlin中,有没有一种方法可以定义一个不可为null的泛型参数,它是可为null类型的子类型? 我想我可以做一些像

class nullableToNonnullable<A: Any?, B> where B: A, B: Any {
    fun toNonNull(a: A): B
}

我不知道你到底想做什么,但是

(可为null的A)->(非null的A)函数

fun toNonNull(a:a?):B

具有
B
的解决方案将使用未经检查的强制类型转换,除非它们是内联的具体化。
class nullableToNonnullable<A: Any> {
    fun toNonNull(a: Option<A>): A
}
class nullableToNonnullable<A: Any> {
    fun toNonNull(a: A?): A
}
class nullableToNonnullable<A: Any, B : A> {
    fun toNonNull(a: A?): B
}
fun <A : Any> toNonNull(a: A?): A
fun <A : Any, B : A> toNonNull(a: A?): B