Rumah >Java >javaTutorial >Kelas Data Kotlin lwn Java: Kisah Dua Bandar (Tetapi Satu Mempunyai Kurang Plat Dandang)

Kelas Data Kotlin lwn Java: Kisah Dua Bandar (Tetapi Satu Mempunyai Kurang Plat Dandang)

Barbara Streisand
Barbara Streisandasal
2024-11-04 12:56:29595semak imbas

Kotlin Data Classes vs Java: A Tale of Two Cities (But One Has Way Less Boilerplate)

Ah, kelas data. Mereka yang bekerja keras dalam dunia pengaturcaraan, membawa data dari satu fungsi ke fungsi lain seperti semut kecil yang rajin. ? Tetapi di Jawa, mencipta pembawa data ini boleh berasa seperti membina seluruh sarang semut dengan tangan. Masukkan Kotlin, dengan kelas datanya yang mudah seperti berkelah di taman. ?

Java: The Land of Boilerplate (Walaupun Ia Mencuba Meningkatkan!)

Di Java, mencipta kelas data ringkas melibatkan simfoni kaedah getter, setter, constructor, equals(), hashCode(), dan toString(). Ia sudah cukup untuk membuat pembangun yang paling berpengalaman pun menangis ke dalam papan kekunci mereka. ?

// Java
public class Person {
    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;

    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    // ... (equals, hashCode, toString - the horror!)
}

Melihat kod itu sahaja membuatkan saya mahu pergi baring. ?

Tetapi jangan takut, pembangun Java! Bahasa ini telah membuat sedikit kemajuan dalam mengurangkan boilerplate. Berikut ialah beberapa pilihan yang menawarkan gambaran keanggunan kelas data Kotlin:

  • Rekod (Java 14 dan ke atas): Ini ialah kelas tidak berubah yang direka khusus untuk menyimpan data. Pengkompil secara automatik menjana kaedah pembina, getter, equals(), hashCode(), dan toString().
// Java
record Person(String name, int age) {} 
  • Projek Lombok: Pustaka popular ini menggunakan anotasi untuk menjana kod boilerplate untuk anda. Dengan anotasi @Data, anda boleh mendapatkan semua kaedah yang diperlukan dengan usaha yang minimum.
// Java
import lombok.Data;

@Data
public class Person {
    private String name;
    private int age;
}

Walaupun pilihan ini adalah langkah ke arah yang betul, pilihan tersebut tidak sepadan dengan ringkas dan kaya ciri kelas data Kotlin.

Kotlin: Oasis Kelas Data

Kotlin, dalam kebijaksanaannya yang tidak terhingga, berkata, "Cukup dengan boilerplate!" dan memperkenalkan kelas data. Dengan satu kata kunci, data, anda mendapat semua kaedah penting tersebut dijana secara automatik. Ia seperti sihir, tetapi jenis yang sebenarnya berkesan.

// Kotlin
data class Person(val name: String, val age: Int)

Itu sahaja! Dua baris kod, dan anda mempunyai kelas data berfungsi sepenuhnya dengan getter, setter, equals(), hashCode(), dan toString() semuanya sedia untuk digunakan. Anda boleh mendengar sorakan pembangun Java dari sini. ?

Tetapi Tunggu, Ada Lagi

Kelas data Kotlin juga disertakan dengan beberapa barang tambahan, seperti:

  • Ketidakbolehubahan secara lalai: Gunakan val untuk sifat anda dan kelas data anda menjadi kubu yang tidak berubah, melindungi data anda daripada pengubahsuaian yang tidak disengajakan. ?️
  • Fungsi Salin(): Perlu membuat versi objek data anda yang diubah suai sedikit? Fungsi copy() menjadikannya mudah. ?️
  • Memusnahkan pengisytiharan: Ekstrak komponen individu kelas data anda ke dalam pembolehubah berasingan dengan mudah. Ia seperti membongkar beg pakaian yang tersusun dengan sempurna. ?

Kesimpulannya (TL;DR)

Kelas data Kotlin adalah nafas segar dalam dunia boilerplate Java. Ia ringkas, cekap dan padat dengan ciri yang berguna. Jadi, jika anda bosan menulis getter dan setter yang tidak berkesudahan, sudah tiba masanya untuk menerima cara Kotlin. Jari anda (dan kewarasan anda) akan berterima kasih kepada anda. ?

P.S. Jika anda seorang pembangun Java yang masih berpaut pada boilerplate anda, jangan risau. Kami akan membiarkan lampu menyala untuk anda. ?

Atas ialah kandungan terperinci Kelas Data Kotlin lwn Java: Kisah Dua Bandar (Tetapi Satu Mempunyai Kurang Plat Dandang). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn