DEV Community

Discussion on: Don't fool yourself with lateinit modifier

Collapse
 
andrewtheant profile image
Andrew Bastin • Edited

Isn't it better to use the lazy delegate in those cases ?

Like instead of:

class MainActivity : AppCompatActivity() {

    lateinit var alarmManager: AlarmManager

    // This wouldn't work:
    // val alarmService = getSystemService(AlarmManager::class.java)

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        alarmManager = getSystemService(AlarmManager::class.java)
}

You could use :

class MainActivity : AppCompatActivity() {

    val alarmManager: AlarmManager by lazy {
         getSystemService(AlarmManager::class.java)
    }


    // This wouldn't work:
    // val alarmService = getSystemService(AlarmManager::class.java)

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