Kotlin!!操作符的安全替代方案
Kotlin 里的!!
操作符,刚接触的时候觉得挺方便,直接告诉编译器“我这值绝对不为 null”,看着爽,用多了可就埋雷了。运行时爆个NullPointerException
,真够你喝一壶的。
比较靠谱的做法是别乱用!!
,靠 Kotlin 本身那套空安全机制就挺香的。像用val
声明变量,值一开始就赋好,不用担心它突然变null
。简单又放心:
val someValue: String = "Some value"
要是你遇到要晚点初始化的场景,比如Activity
里等onCreate()
才初始化,那就用lateinit
。不过它只支持引用类型,基本类型想这么玩还得用Delegates.notNull()
:
private var number: Int by Delegates.notNull()
还有个更灵活的做法,用let
搭配安全调用?.
。像下面这样写,变量非空才会继续走逻辑,少了不少判断代码:
url?.let {
doSomethingWith(it)
}
多个参数都要非空才干活?写个小函数组合一下逻辑就清爽多了,比如这样上传头像的场景:
fun uploadIfReady(username: String?, photoUrl: String?) {
if (username != null && photoUrl != null) {
uploadPhoto(username, photoUrl)
}
}
还有also
和apply
这些扩展函数,配合用起来挺顺的,代码更精简,逻辑更清晰。尤其做一些链式调用或中间调试时有用。
,别太依赖!!
,工具用得多了容易麻痹,还是把逻辑写清楚些更稳。如果你还在频繁地!!
,可以看看这篇文章,里面讲得还蛮系统的。
70.64KB
文件大小:
评论区