Safe Calls dan Elvis Operator di Kotlin


kita sudah mengenal tentang NullPointerException dan cara penanganannya. Kini kita akan belajar bagaimana menangani objek nullable dengan cara yang lebih mudah, yaitu menggunakan Safe Calls dan Elvis Operator.


Safe calls operator (?.)

Yang pertama akan kita pelajari adalah Safe Calls. Seperti namanya, safe call akan menjamin kode yang kita tulis aman dari NullPointerException. Dalam menggunakan safe call, kita akan mengganti tanda titik (.) dengan tanda (?.) saat mengakses atau mengelola nilai dari objek nullable. Seperti ini: 

  1. val text: String? = null

  2. text?.length


Dengan safe call, kompiler akan melewatkan proses jika objek tersebut bernilai null.

Elvis Operator (?:)

Elvis operator memungkinkan kita untuk menetapkan default value atau nilai dasar jika objek bernilai null.

  1. val text: String? = null

  2. val textLength = text?.length ?: 7


Kode di atas sebenarnya sama seperti ketika kita menggunakan if/else berikut:

  1. val textLength = if (text != null) text.length else 7


Elvis akan mengembalikan nilai text.length jika text tidak bernilai null. Sebaliknya, jika text bernilai null maka default value yang akan dikembalikan.
Sebelum lanjut ke modul selanjutnya terdapat satu hal yang perlu diperhatikan dalam penanganan objek nullable. Perhatikan penggunaan operator non-null assertion (!!), misalnya seperti berikut:

  1. val text: String? = null

  2. val textLength = text!!.length // ready to go ???


Dengan menggunakan non-null assertion kompiler akan mengizinkan kita untuk mengakses atau mengelola nilai dari sebuah objek nullable. Namun penggunaan operator tersebut sangat tidak disarankan karena akan memaksa sebuah objek menjadi non-null. Sehingga ketika objek tersebut bernilai null, Anda tetap akan berjumpa dengan NullPointerException

*

Post a Comment (0)
Previous Post Next Post