Allow a generic box to hold a missing value.

Nullable Generics

NullableGenerics.kt
class MaybeBox<T>(val value: T?) {
    fun orFallback(fallback: T): T {
        if (value == null) {
            return fallback
        }
        return value
    }
}

fun main() {
    val input: String? = 
    val box = MaybeBox(input)
    val name = box.orFallback("guest")

    println("input=${input ?: "none"}")
    println("name=$name")
}
class MaybeBox<T>(val value: T?) {
    fun orFallback(fallback: T): T {
        if (value == null) {
            return fallback
        }
        return value
    }
}

fun main() {
    val input: String? = 
    val box = MaybeBox(input)
    val name = box.orFallback("guest")

    println("input=${input ?: "none"}")
    println("name=$name")
}
class MaybeBox<T>(val value: T?) {
    fun orFallback(fallback: T): T {
        if (value == null) {
            return fallback
        }
        return value
    }
}

fun main() {
    val input: String? = 
    val box = MaybeBox(input)
    val name = box.orFallback("guest")

    println("input=${input ?: "none"}")
    println("name=$name")
}
nullable-generic A generic type argument can be nullable, just like a regular type.