什么是“ !!”运算符在Kotlin中是什么意思?

时间:2020-02-18 13:59:40

标签: android kotlin

我正在从Google for Android上阅读此guide,并且其中有一段摘录。

!!userDao.save(response.body()!!)中做什么?

private fun refreshUser(userId: String) {
   // Runs in a background thread.
   executor.execute {
       // Check if user data was fetched recently.
       val userExists = userDao.hasUser(FRESH_TIMEOUT)
       if (!userExists) {
           // Refreshes the data.
           val response = webservice.getUser(userId).execute()

           // Check for errors here.

           // Updates the database. The LiveData object automatically
           // refreshes, so we don't need to do anything else here.
           userDao.save(response.body()!!)
       }
   }
}

1 个答案:

答案 0 :(得分:6)

这用于将表达式转换为非null并在结果为null时抛出KotlinNullPointerException。因此,在这种用法中,它将仅保存响应的主体不为null,否则将引发异常。

有关更多信息,请参见here