Jenis platform
Kebolehnolan daripada Java
Jenis platform ialah pelajaran Kotlin Academy percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Kotlin Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Kotlin Academy merangkumi sejumlah 4 pelajaran.
Kotlin Bertemu Java
Kotlin berjalan pada JVM dan sentiasa memanggil kod Java. Namun, Java tidak mempunyai konsep jenis yang boleh null berbanding jenis bukan null.
Jadi, bagaimanakah Kotlin mengendalikan nilai yang datang daripada Java? Melalui jenis platform.
Apakah Jenis Platform
Jenis platform ialah jenis yang diperoleh Kotlin daripada Java, tetapi kebolehnullannya tidak diketahui.
Kotlin menulisnya sebagai String! dalam mesej ralat. Tanda seru itu bermaksud: nilainya mungkin null atau mungkin bukan null, dan Kotlin tidak akan memaksa salah satu pilihan.
Pemeriksaan yang Dilonggarkan
Untuk jenis platform, Kotlin melonggarkan pemeriksaan nullnya. Anda boleh menganggap nilai itu bukan null tanpa menyebabkan ralat pengkompil.
Pertukarannya ialah jika nilai itu benar-benar null, Anda akan mendapat NullPointerException semasa masa jalan.
Anda Memilih Jenis
Apabila Anda menyimpan nilai jenis platform, Anda menentukan cara menaipnya:
- sebagai bukan null
String→ mudah tetapi berisiko - sebagai boleh null
String?→ selamat dan jelas
Contoh Kotlin ini mensimulasikan pilihan tersebut.
fun fromJava(): String? = "value from Java"
fun main() {
val safe: String? = fromJava()
println(safe?.length)
}Pilihan yang Berisiko
Jika Anda menganggap nilai itu bukan null sedangkan sumber mengembalikan null, ranap berlaku semasa penetapan atau penggunaan pertama.
Inilah bahaya tersembunyi jenis 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 boleh menggunakan anotasi seperti @Nullable dan @NotNull.
Apabila anotasi ini tersedia, Kotlin menghormatinya dan memberikan String? atau String yang betul, bukannya jenis platform.
Amalan Terbaik: Anggap Boleh Null
Apabila memanggil kod Java tanpa anotasi, tabiat yang selamat ialah menganggap hasilnya boleh null.
Taipkan pemboleh ubah Anda dengan ? dan gunakan panggilan selamat, sama seperti mana-mana nilai Kotlin yang boleh null.
fun fromJava(): String? = "data"
fun main() {
val value: String? = fromJava()
val length = value?.length ?: 0
println(length)
}Sempadan Berjaga-jaga
Anggap sempadan Java sebagai tidak dipercayai. Sahkan nilai atau berikan nilai lalai tepat apabila nilai itu memasuki kod Kotlin Anda.
Selepas itu, seluruh kod Anda berfungsi dengan jenis Kotlin yang jelas.
fun fromJava(): String? = null
fun main() {
val name = fromJava() ?: "default"
// from here on, name is a clean non-null String
println(name.uppercase())
}Sebab Kotlin Membenarkan Hal Ini
Kotlin boleh memaksa setiap nilai Java menjadi boleh null, tetapi hal itu akan menjadikan saling kendali Java terlalu panjang dan menyusahkan.
Jenis platform ialah kompromi yang praktikal: kemudahan serta pilihan untuk menjadi ketat.
Mengenal Pasti Jenis Platform
Anda tidak akan menulis String! sendiri. Ia hanya muncul dalam petunjuk IDE dan mesej ralat apabila Anda mengarahkan penuding pada nilai yang berasal daripada Java.
Melihat tanda ! ialah isyarat untuk Anda menentukan kebolehnullan dengan sengaja.
Menggabungkan Semuanya
Jenis platform merapatkan jurang antara Java dengan Kotlin:
- Kebolehnullannya tidak diketahui, ditunjukkan sebagai
Type! - Kotlin membenarkan Anda memilih jenis boleh null atau bukan null
- Apabila tidak pasti, anggap nilai itu boleh null demi keselamatan
- Anotasi menghapuskan keperluan membuat tekaan
fun fromJava(): String? = "safe value"
fun main() {
val value: String? = fromJava()
println(value?.uppercase() ?: "missing")
}Semakan Pantas
Uji pemahaman Anda tentang jenis platform.
Imbas Kembali
Anda telah mempelajari cara kebolehnullan merentasi sempadan Java:
- Jenis platform mempunyai kebolehnullan yang tidak diketahui
- Kotlin melonggarkan pemeriksaan, tetapi andaian yang salah menyebabkan NPE semasa masa jalan
- Anggap nilai boleh null dan berikan nilai lalai di sempadan
- Anotasi Java memulihkan jenis yang betul
Itu melengkapkan Pendalaman Keselamatan Null.
Pelajari Kotlin dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 51
- Pelajaran
- 203
Soalan Lazim
Adakah pelajaran “Jenis platform” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Kotlin Academy, termasuk “Jenis platform”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Kotlin Academy merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Jenis platform”?
Kebolehnolan daripada Java Anda berlatih Kotlin Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Kotlin Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Kotlin Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.
Berapa lamakah pelajaran “Jenis platform” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Kotlin Academy ini?
Ya. Setiap pelajaran Kotlin Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.