Kotlin NULL检查和处理(?: 、 ?. 、 !!)

Kotlin校验字符串空值的几个方法:

isNullOrEmpty : 为空指针或者字串长度为0时返回true,非空串与可空串均可调用。

isNullOrBlank : 为空指针或者字串长度为0或者全为空格时返回true,非空串与可空串均可调用。

isEmpty : 字串长度为0时返回true,只有非空串可调用。

isBlank : 字串长度为0或者全为空格时返回true,只有非空串可调用。

isNotEmpty : 字串长度大于0时返回true,只有非空串可调用。

isNotBlank : 字串长度大于0且不是全空格串时返回true,只有非空串可调用。

 

字符串声明或者调用其他对象类型的方法,仍需要判断空指针,如下代码为例:

//不能为空
var age: String = "123"
//不能为空,lateinit关键字可对非空属性 延迟初始化
lateinit var age : String

//类型后面加?表示可为空
var age1: String? = "23" 
var age2: String? = null


//抛出空指针异常
val ages = age2!!.toInt()

//不做处理返回 null
val ages1 = age2?.toInt()

//age为空返回-1
val ages2 = age2?.toInt() ?: -1

 1、按照Java的写作习惯

    val ages = if (age != null) age.toInt() else -1

 

2、运算符  ?.  

    val ages = age?.toInt()

   等价于 ages = if (age ! = null ) age.toInt() else null 。意味着返回值仍然可能为空,如不想返回结果为null,还需零做判断。

 

3、运算符  ?:

   val ages = age?.toInt() ?: -1

   等价于 ages = if (age ! = null ) age.toInt() else -1。类似于java三元运算符“变量名=条件语句 ?取值A  :取值B” 的缩写,这样可以确保返回值不为null

 

4、运算符  !!  强行放弃非空判断,使用时必须在确保执行对象非空

   val ages = age !! .toInt()

   为了保障,最好添加异常捕获处理

   try {

      val ages = age !! .toInt()

    } catch ( e :Exception) {

    }

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值