require Not Null
Throws an IllegalArgumentException if the value is null. Otherwise returns the not null value.
inline fun <T : Any> requireNotNull(value: T?, lazyMessage: () -> Any): T
Content copied to clipboard
Throws an IllegalArgumentException with the result of calling lazyMessage if the value is null. Otherwise returns the not null value.
Samples
import samples.*
import kotlin.test.*
fun main() {
//sampleStart
fun printRequiredParam(params: Map<String, String?>) {
val required: String = requireNotNull(params["required"]) { "Required value must be non-null" } // returns a non-null value
println(required)
// ...
}
fun printRequiredParamByUpperCase(params: Map<String, String?>) {
val requiredParam: String? = params["required"]
requireNotNull(requiredParam) { "Required value must be non-null" }
// now requiredParam is smartcast to String so that it is unnecessary to use the safe call(?.)
println(requiredParam.uppercase())
}
val params: MutableMap<String, String?> = mutableMapOf("required" to null)
assertFailsWith<IllegalArgumentException> { printRequiredParam(params) }
assertFailsWith<IllegalArgumentException> { printRequiredParamByUpperCase(params) }
params["required"] = "non-empty-param"
printRequiredParam(params) // prints "non-empty-param"
printRequiredParamByUpperCase(params) // prints "NON-EMPTY-PARAM"
//sampleEnd
}