Kotlin Academy · Pelajaran

Tipe Platform

Nullabilitas dari Java

Pelajaran 4 dari 413 langkah

Tipe Platform adalah pelajaran Kotlin Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Kotlin Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Kotlin Academy mencakup 4 pelajaran total.

Kotlin Bertemu Java

Kotlin berjalan di JVM dan terus-menerus memanggil kode Java. Namun, Java tidak memiliki konsep tipe yang dapat bernilai null dan tipe yang tidak null.

Jadi, bagaimana Kotlin menangani nilai yang berasal dari Java? Melalui tipe platform.

Apa Itu Tipe Platform

Tipe platform adalah tipe yang diperoleh Kotlin dari Java dengan status null yang tidak diketahui.

Kotlin menuliskannya sebagai String! dalam pesan kesalahan. Tanda seru berarti: nilainya mungkin null, mungkin juga tidak null, dan Kotlin tidak akan memaksakan salah satu pilihan.

Pemeriksaan yang Lebih Longgar

Untuk tipe platform, Kotlin melonggarkan pemeriksaan null. Anda dapat memperlakukan nilainya sebagai nilai yang tidak null tanpa kesalahan dari kompiler.

Konsekuensinya: jika nilainya benar-benar null, Anda akan mendapatkan NullPointerException saat program berjalan.

Anda Menentukan Tipenya

Saat menyimpan nilai bertipe platform, Anda menentukan cara menetapkan tipenya:

  • sebagai nilai yang tidak null String → praktis tetapi berisiko
  • sebagai nilai yang mungkin null String? → aman dan jelas

Contoh Kotlin ini menyimulasikan pilihan tersebut.

fun fromJava(): String? = "value from Java"

fun main() {
    val safe: String? = fromJava()
    println(safe?.length)
}

Pilihan yang Berisiko

Jika Anda menganggap nilainya tidak null, tetapi sumbernya mengembalikan null, kegagalan terjadi saat penugasan atau penggunaan pertama.

Inilah bahaya tersembunyi dari tipe platform.

fun fromJava(): String? = null

fun main() {
    try {
        val risky: String = fromJava()!!
        println(risky.length)
    } catch (e: NullPointerException) {
        println("Null came from the Java side")
    }
}

Anotasi Membantu

Pustaka Java dapat menggunakan anotasi seperti @Nullable dan @NotNull.

Jika tersedia, Kotlin akan mematuhinya dan memberi Anda tipe String? atau String yang tepat, bukan tipe platform.

Praktik Terbaik: Anggap Bisa Null

Saat memanggil kode Java tanpa anotasi, kebiasaan yang aman adalah memperlakukan hasilnya sebagai nilai yang mungkin null.

Tentukan tipe variabel Anda dengan ? dan gunakan pemanggilan aman, seperti pada nilai nullable Kotlin lainnya.

fun fromJava(): String? = "data"

fun main() {
    val value: String? = fromJava()
    val length = value?.length ?: 0
    println(length)
}

Batas Perlindungan

Perlakukan batas antara Java dan Kotlin sebagai sesuatu yang tidak tepercaya. Validasi nilai atau berikan nilai bawaan tepat saat nilai tersebut memasuki kode Kotlin Anda.

Setelah itu, bagian kode Anda yang lain dapat bekerja dengan tipe Kotlin yang bersih.

fun fromJava(): String? = null

fun main() {
    val name = fromJava() ?: "default"
    // from here on, name is a clean non-null String
    println(name.uppercase())
}

Alasan Kotlin Mengizinkan Ini

Kotlin dapat memaksa setiap nilai Java menjadi nilai yang mungkin null, tetapi hal itu akan membuat interoperabilitas dengan Java sangat bertele-tele.

Tipe platform adalah kompromi yang pragmatis: memberikan kemudahan sekaligus pilihan untuk bersikap ketat.

Mengenali Tipe Platform

Anda tidak akan menulis String! sendiri. Tipe ini hanya muncul dalam petunjuk IDE dan pesan kesalahan saat Anda mengarahkan kursor ke nilai yang berasal dari Java.

Melihat tanda ! adalah isyarat bagi Anda untuk menentukan nullability secara sadar.

Menggabungkan Semuanya

Tipe platform menjembatani Java dan Kotlin:

  • Tipe ini memiliki status null yang tidak diketahui, ditampilkan sebagai Type!
  • Kotlin membolehkan Anda memilih tipe yang mungkin null atau tidak null
  • Jika ragu, anggap nilainya mungkin null agar tetap aman
  • Anotasi menghilangkan kebutuhan untuk menebak
fun fromJava(): String? = "safe value"

fun main() {
    val value: String? = fromJava()
    println(value?.uppercase() ?: "missing")
}

Pemeriksaan Cepat

Uji pemahaman Anda tentang tipe platform.

Ringkasan

Anda telah mempelajari bagaimana nullability melintasi batas Java:

  • Tipe platform memiliki status null yang tidak diketahui
  • Kotlin melonggarkan pemeriksaan, tetapi asumsi yang keliru menyebabkan NPE saat program berjalan
  • Anggap nilainya mungkin null dan berikan nilai bawaan di batas tersebut
  • Anotasi Java mengembalikan tipe yang tepat

Dengan demikian, pembahasan mendalam tentang keamanan null selesai.

Gratis untuk memulai

Belajar Kotlin dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
51
Pelajaran
203

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Tipe Platform” gratis?

Ya — teks lengkap “Tipe Platform” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Kotlin Academy, upgrade ke CoddyKit PRO. Kursus Kotlin Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Tipe Platform”?

Nullabilitas dari Java Kamu berlatih Kotlin Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Kotlin Academy?

Tidak diperlukan pengalaman sebelumnya. Kotlin Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “Tipe Platform” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Kotlin Academy ini?

Ya. Setiap pelajaran Kotlin Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Tipe Nullable dan Non-Null
  2. Pemanggilan Aman dan Elvis
  3. Operator !!
  4. Tipe Platform
← Kembali ke Kotlin Academy