😄作者简介: 小曾同学.com,一个致力于测试开发的博主⛽️,主要职责:测试开发、CI/CD
如果文章知识点有错误的地方,还请大家指正,让我们一起学习,一起进步。
😊 座右铭:不想当开发的测试,不是一个好测试✌️。
如果感觉博主的文章还不错的话,还请点赞、收藏哦!👍
在开发过程中经常遇到空值导致的 Crash 问题,要是能给变量设置默认值将会避免很多的麻烦。我将介绍在Android开发中遇到的nul值和空字符串问题。
假如我们有一个dialog
界面,其中1和2 是需要设置默认值的地方,因为如果为空则会出现崩溃问题。
val UrlName = dialog.findViewById<EditText>(R.id.name)
val resolutionButton = dialog.findViewById<EditText>(R.id.resolution)
像上述控件中由用户所输入的内容,默认为字符串类型,当用户在UrlName位置没有输入内容时,则默认值为空字符串””,而不是 nul。接下来获取UrlName位置的数据,如果为“”的话,则设置默认值为test
val inputName = if(UrlName.text.isNullOrBlank()){
"test"
}else{
UrlName.text
}
使用 isNullOrBlank()
函数来检查字符串是否为 null
或空字符串。如果 UrlName.text
是 null
或空字符串,inputName
将被赋值为 “test”,否则将使用 UrlName.text
的值。
如果 UrlName.text
是 null
,在 Kotlin 中使用 Elvis 操作符 ?:
val inputName = UrlName.text ?: "test"
在 Kotlin 中使用 Elvis 操作符 ?:
时,空字符串被视为非空值,不会被视为 null
。因此,如果 UrlName.text
是空字符串,inputName
将被赋值为空字符串而不是备用值 “test”。即只有当 UrlName
或 UrlName.text
为 null
时,Elvis 操作符 ?:
才会返回备用值。
resolutionButton位置的数据获取,可以直接使用 Elvis 操作符 ?:
,如下所示。
var inputText = resolutionButton.text.toString().toIntOrNull()?:720
如果说你不太确实是空字符串还是null,可以直接使用isNullOrBlank()。当然也可以分开写代码,一步步排查。
val textValue = UrlName?.text
val inputName = textValue ?: "test"
总之,当需要处理空值时,可以使用 toIntOrNull(),另外多了解一些 Elvis 操作符 ?:
在日常开发中真的很有用。
最近在阅读《如何阅读“奇特的一生”》,书籍中讲的时间统计法真的很有用,非常推荐给大家。
压力往往是因为你坚持了很久,却没有进展造成的。所以我每次都会设定一个小阶段目标,看到目标被我拿下,压力就变成了一定要一鼓作气拿下的决心了。