首页 > 解决方案 > 强制为非空而不使用?

问题描述

在 Kotlin 中,如果我有以下内容:

val html = response.body()?.string()

html 将编译为可为空。我需要将它传递给一个不允许空值的函数。有没有办法以不使用的方式传递它(或转换它)!

标签: kotlin

解决方案


您可以使用 elvis 运算符传递默认值:

val html = response.body()?.string() ?: ""
nonNullableFunction(html)

或者,您可以仅在不为空let时才调用它。html这将为您提供该函数的可为空结果。

val result = response.body()?.string()?.let { nonNullableFunction(it) }

推荐阅读