ホームページ >Java >&#&チュートリアル >Kotlin データ クラスと Java: 2 つの都市の物語 (ただし、一方の方が定型文がはるかに少ない)

Kotlin データ クラスと Java: 2 つの都市の物語 (ただし、一方の方が定型文がはるかに少ない)

Barbara Streisand
Barbara Streisandオリジナル
2024-11-04 12:56:29609ブラウズ

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

ああ、データクラスですね。プログラミングの世界の地味な主力で、小さな勤勉なアリのように、ある関数から別の関数にデータを運びます。 ?しかし、Java では、これらのデータ キャリアの作成は、蟻塚全体を手作業で構築するように感じることがあります。公園でのピクニックのように楽なデータ クラスを備えた Kotlin をご利用ください。 ?

Java: 定型文の国 (ただし改善しようとしている!)

Java では、単純なデータ クラスの作成には、ゲッター、セッター、コンストラクター、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 以降): これらは、データを保持するために特別に設計された不変クラスです。コンパイラは、コンストラクター、ゲッター、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 はその無限の知恵で、「定型文はもう十分です!」と言いました。そしてデータクラスを導入しました。データという 1 つのキーワードを使用すると、これらの重要なメソッドがすべて自動的に生成されます。それは魔法のようなものですが、実際に効果があるものです。

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

それだけです! 2 行のコードで、getter、setter、equals()、hashCode()、toString() をすべて備えた完全に機能するデータ クラスが完成します。ここからは Java 開発者の歓声が聞こえてきそうです。 ?

でも待ってください、もっとあります

Kotlin データ クラスには、次のようないくつかの追加機能も付属しています。

  • デフォルトの不変性: プロパティに val を使用すると、データ クラスが不変の要塞となり、データを偶発的な変更から保護します。 ?️
  • Copy() 関数: データ オブジェクトのわずかに変更されたバージョンを作成する必要がありますか? copy() 関数を使用すると、それが簡単になります。 ?️
  • 宣言の構造化: データ クラスの個々のコンポーネントを個別の変数に簡単に抽出します。それは、完璧に整理されたスーツケースの開梱のようなものです。 ?

結論として (TL;DR)

Kotlin データ クラスは、Java ボイラープレートの世界に新風を吹き込みます。簡潔かつ効率的で、便利な機能が満載です。したがって、無限のゲッターとセッターを作成することにうんざりしている場合は、Kotlin の方法を採用する時期が来ています。あなたの指(そしてあなたの正気)はあなたに感謝するでしょう。 ?

追伸 あなたがまだ定型文に固執している Java 開発者であれば、心配する必要はありません。ライトはつけたままにしておきます。 ?

以上がKotlin データ クラスと Java: 2 つの都市の物語 (ただし、一方の方が定型文がはるかに少ない)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。