首頁 > Java > java教程 > 主體

Kotlin 資料類別與 Java:兩個城市的故事(但其中一個的樣板檔案要少得多)

Barbara Streisand
發布: 2024-11-04 12:56:29
原創
549 人瀏覽過

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

啊,資料類。程式設計世界中那些不起眼的主力,像勤勞的小螞蟻一樣將資料從一個函數傳送到另一個函數。 ?但在 Java 中,創建這些資料載體感覺就像是手工建構整個蟻丘。輸入 Kotlin,其資料類別就像在公園野餐一樣輕鬆。 ?

Java:樣板之地(儘管它正在努力改進!)

在 Java 中,建立一個簡單的資料類別涉及一系列 getter、setter、建構子、equals()、hashCode() 和 toString() 方法。即使是最有經驗的開發人員也足以對著鍵盤哭泣。 ?

// 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!)
}
登入後複製

光是看那段程式碼就讓我想躺下。 ?

但是,Java 開發人員不要害怕!該語言在減少樣板程式碼方面取得了一些進展。這裡有幾個選項可以讓您一窺 Kotlin 資料類的優雅:

  • 記錄(Java 14 及更高版本): 這些是專門為保存資料而設計的不可變類別。編譯器自動產生建構函式、getter、equals()、hashCode() 和 toString() 方法。
// Java
record Person(String name, int age) {} 
登入後複製
  • Project Lombok: 這個流行的函式庫使用註解為您產生樣板程式碼。使用@Data註釋,您可以以最少的努力獲得所有必需的方法。
// Java
import lombok.Data;

@Data
public class Person {
    private String name;
    private int age;
}
登入後複製

雖然這些選項是朝著正確方向邁出的一步,但它們與 Kotlin 資料類的簡潔性和功能豐富性不太匹配。

Kotlin:數據類綠洲

Kotlin 以其無限的智慧說:「樣板已經夠了!」並引入了資料類別。使用單一關鍵字數據,您可以自動產生所有這些基本方法。這就像魔法,但確實有效。

// Kotlin
data class Person(val name: String, val age: Int)
登入後複製

就是這樣!兩行程式碼,您就擁有了一個功能齊全的資料類,其中包含 getter、setter、equals()、hashCode() 和 toString() 一切準備就緒。從這裡你幾乎可以聽到 Java 開發人員的歡呼聲。 ?

但是等等,還有更多

Kotlin 資料類別也附帶一些額外的好處,例如:

  • 預設的不變性:使用 val 作為你的屬性,你的資料類別就變成一個不可變的堡壘,保護你的資料免受意外修改。 ?️
  • Copy() 函數: 需要建立資料物件的稍微修改版本? copy() 函數讓它變得輕而易舉。 ?️
  • 解構聲明:輕鬆將資料類別的各個元件提取到單獨的變數中。這就像打開一個井井有條的手提箱一樣。 ?

結論(TL;DR)

Kotlin 資料類為 Java 樣板世界帶來了一股新鮮空氣。它們簡潔、高效,並且充滿了有用的功能。因此,如果您厭倦了編寫無休止的 getter 和 setter,那麼是時候擁抱 Kotlin 方式了。你的手指(和你的理智)會感謝你的。 ?

P.S. 如果您是一名仍堅持使用樣板的 Java 開發人員,請不要擔心。我們會為您留燈。 ?

以上是Kotlin 資料類別與 Java:兩個城市的故事(但其中一個的樣板檔案要少得多)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板