首页 > 解决方案 > 如何将可空参数分配简化为非空参数分配?

问题描述

我有一种情况,当我需要将数据类中的许多可空属性分配给非空属性时。我用的太多了

requireNotNull(parameter) { "Missing parameter" }

例如,我有一个像这样的外部数据类:

data class External(
    val first: String? = null,
    val second: String? = null,
    val third: String? = null,
    val fourth: String? = null,
)

而且我有一个仅与外部类的非空值一起使用的类,例如:

data class Internal(
    val first: String,
    val second: String,
    val third: String,
    val fourth: String,
)

所以当我在内部映射外部时,我必须这样写:

val internal = Internal(
    first = requireNotNull(external.first) { "Missing first." },
    second = requireNotNull(external.second ) { "Missing second." },
    third = requireNotNull(external.third ) { "Missing third." },
    fourth = requireNotNull(external.fourth ) { "Missing fourth." }
)

事实上,我有二十多个这样的属性,我不认为 requireNotNull 在这种情况下是很好的解决方案。有人可以提出更好的建议吗?

标签: kotlinnotnull

解决方案


推荐阅读