Я не знаю, что именно вы пытаетесь сделать, но функция
(обнуляемый A) -> (не ноль A)
class nullableToNonnullable<A: Any> {
fun toNonNull(a: A?): A
}
(обнуляемый A) ->(не нулевой подтип A) функция
class nullableToNonnullable<A: Any, B : A> {
fun toNonNull(a: A?): B
}
Здесь параметр типа A
в классе должен быть задан как ненулевой, хотя функция может вводить обнуляемые параметры.
Iне думайте, что вы можете ограничить один из параметров типа класса быть обнуляемым (не должен быть не нулевым), а один из них может быть как подтипом первого, так и ненулевым в Kotlin.
И ядумаю, вам не нужен класс в данном случае.
fun <A : Any> toNonNull(a: A?): A
и
fun <A : Any, B : A> toNonNull(a: A?): B