kotlin - 强制为非空而不使用?
问题描述
在 Kotlin 中,如果我有以下内容:
val html = response.body()?.string()
html 将编译为可为空。我需要将它传递给一个不允许空值的函数。有没有办法以不使用的方式传递它(或转换它)!
解决方案
您可以使用 elvis 运算符传递默认值:
val html = response.body()?.string() ?: ""
nonNullableFunction(html)
或者,您可以仅在不为空let
时才调用它。html
这将为您提供该函数的可为空结果。
val result = response.body()?.string()?.let { nonNullableFunction(it) }
推荐阅读
- apache-kafka - Spring Kafka - 遇到“Magic v0 不支持记录头”错误
- javascript - 如何从另一个数组中的对象属性创建数组
- scala - 使用 Acolyte 模拟 JDBC 驱动程序 - 事务支持?
- php - PHP(laravel) 创建一个 m3u 播放列表 URL,可直接在 VLC 中播放
- swift - 查询 Firebase Firestore 帖子的最有效方法
- excel - Excel:轮盘赌的动态单元格引用
- sql-server - 在 SSRS 中,使用 IIF 设置文本框的字体颜色不起作用
- excel - 突出显示唯一重复值并从不同列求和
- java - 如何跨多个时区处理 java.sql.Dates?
- c# - 聚合上的 C# DDD 模式查询