在 kotlin 中编写实现时,我想使用全局定义的非空变量。从功能上讲,这些变量不能为空,但技术实现要求它们可以为空。
我到目前为止使用的解决方案是:
val funtionalValue = if (global.technicalValue != null) global.technicalValue!! else throw someException()
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以在functionalValue不使用!!全局定义的技术值的情况下分配?
您可能想要使用一些标准库函数,称为 checkNotNull和requireNotNull。
val funtionalValue = checkNotNull(global.technicalValue)
Run Code Online (Sandbox Code Playgroud)
IllegalStateException如果值为 null,这将导致抛出异常。requireNotNull将抛出一个IllegalArgumentException并且更适合验证函数参数和用户输入。
如果你想控制抛出的异常,你也可以使用 elvis 运算符来代替ifand 。!!
val funtionalValue = global.technicalValue ?: throw someException
Run Code Online (Sandbox Code Playgroud)
感谢@Sweeper 指出checkNotNull。
| 归档时间: |
|
| 查看次数: |
185 次 |
| 最近记录: |