Search code examples
kotlinnullable

Is there a nicer way to write this in kotlin?


This is my current code:

private val EXTRA_IS_REFRESHING = "IS_REFRESHING"
private var isRefreshing: Boolean = false

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)

    isRefreshing = if (savedInstanceState != null)        
        savedInstanceState!!.getBoolean(EXTRA_IS_REFRESHING, false) 
        else false
}

Is there a nicer way in Kotlin to write the last line?


Solution

  • One of the way is just checking if result of nullable expression equals true:

    isRefreshing = savedInstanceState?.getBoolean(EXTRA_IS_REFRESHING, false) == true
    

    Or it may be elvis operator:

    isRefreshing = savedInstanceState?.getBoolean(EXTRA_IS_REFRESHING, false) ?: false
    

    As for me first snippet of code shows intention better, so I prefer it.