Spec-Zone.ru › Kotlin 2

requireNotNull

kotlin-stdlib/kotlin/requireNotNull

Начиная с Kotlin: 1.0

@IgnorableReturnValue
inline fun <T : Any> requireNotNull(value: T?): T

Выбрасывает IllegalArgumentException, если value равно null. В противном случае возвращает значение, не равное null.


@IgnorableReturnValue
inline fun <T : Any> requireNotNull(value: T?, lazyMessage: () -> Any): T

Выбрасывает IllegalArgumentException с результатом вызова lazyMessage, если value равно null. В противном случае возвращает значение, не равное null.

Примеры

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)
// printRequiredParam(params) // will fail with IllegalArgumentException
// printRequiredParamByUpperCase(params) // will fail with IllegalArgumentException

params["required"] = "non-empty-param"
printRequiredParam(params) // prints "non-empty-param"
printRequiredParamByUpperCase(params) // prints "NON-EMPTY-PARAM" 
   //sampleEnd
}

© 2010–2026 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/require-not-null.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API