Sobes.tech
Junior

Kotlin-де nullable объектінің өрісіне жүгінсеңіз, не болады?

sobes.tech AI

AI-дан жауап

Егер объектінің nullable өрісіне null тексермей жүгінсе, NullPointerException (NPE) қателігі пайда болады.

Қауіпсіз жүгіну үшін келесі тәсілдерді қолдануға болады:

  1. Қауіпсіз шақыру операторы (?.): Егер объект null болса, null қайтарады, әйтпесе шақыруды орындайды.

    // Мысалы, user? User?
    val userName: String? = user?.name
    
  2. !! операторымен null емес деп дәлелдеу: Объекттің null емес екеніне нақты сенімділік береді. Егер ол null болса, NullPointerException тастайды.

    // Саналы түрде қолдану, NPE-ге әкелуі мүмкін
    val userName: String = user!!.name
    
  3. Элвис операторы (?:): Егер сол жақтағы объект null болса, әдепкі мәнді береді.

    val userName: String = user?.name ?: "Белгісіз қолданушы"
    
  4. if немесе when блоктары арқылы null тексеру:

    if (user != null) {
        val userName = user.name
    } else {
        // user null болған жағдайда өңдеу
    }
    
  5. let, run, apply, with функцияларын қауіпсіз шақырумен қолдану:

    user?.let {
        // Бұл блок ішіндегі `it` `null` емес `User`
        val userName = it.name
    }
    

Таңдау бағдарламаның логикасына және объект null болған жағдайда қалаған мінез-құлыққа байланысты. Әдетте, қауіпсіз шақыру операторы (?.) немесе Элвис операторы (?:) қолдану ұсынылады, ал !! операторын абайлап қолдану керек.