Java レコード タイプの探索

WBOY
リリース: 2024-07-24 11:19:31
オリジナル
706 人が閲覧しました

Exploring Java Record Types

Java 14 でプレビュー機能として導入され、Java 16 で安定した Java レコード タイプは、不変のデータ キャリアを定義する簡潔な方法を提供します。これらは、ボイラープレート コードを削減し、不変性と等価性セマンティクスを確保することで、単純なデータ保持クラスを作成するタスクを簡素化するように設計されています。

Java レコードとは何ですか?

Java レコードは、不変データのモデル化に使用される Java プログラミング言語の特別な種類のクラスです。レコードはコンストラクター、アクセサー、equals()、hashCode()、および toString() メソッドを自動的に生成するため、データ転送オブジェクトに最適です。

レコードの定義

Java でのレコードの定義は簡単です。簡単な例を次に示します:

public record Person(String name, int age) {}
ログイン後にコピー

この例では、個人レコードには次のものが自動的に含まれます:

  • 各コンポーネントのプライベート最終フィールド (名前と年齢)。
  • これらのフィールドを初期化するパブリック コンストラクター。
  • 各フィールドの取得メソッド (name() および age())。
  • equals()、hashCode()、および toString() メソッド。

レコードを使用する利点

  1. 簡潔性: レコードにより定型コードが大幅に削減されます。 getter、equals()、hashCode()、および toString() メソッドを手動で記述する必要はありません。
  2. 不変性: レコードは本質的に不変であり、レコードの作成後にフィールドを変更できないことが保証されます。
  3. 可読性の向上: レコードを使用するコードがより簡潔になり、理解しやすくなります。

レコードの使用例

Java アプリケーションでレコードを使用する方法の実際的な例を次に示します。

public record Employee(int id, String name, double salary) {}

public class RecordExample {
    public static void main(String[] args) {
        Employee emp = new Employee(1, "Alice", 75000);
        System.out.println(emp);

        // Accessing fields
        System.out.println("ID: " + emp.id());
        System.out.println("Name: " + emp.name());
        System.out.println("Salary: " + emp.salary());
    }
}
ログイン後にコピー

出力:

Employee[id=1, name=Alice, salary=75000.0]
ID: 1
Name: Alice
Salary: 75000.0
ログイン後にコピー

レコードのカスタマイズ

レコードにはすぐに使える多くの機能が備わっていますが、必要に応じてカスタマイズすることもできます。たとえば、正規コンストラクターに検証ロジックを追加できます。

public record Product(String name, double price) {
    public Product {
        if (price <= 0) {
            throw new IllegalArgumentException("Price must be positive");
        }
    }
}
ログイン後にコピー

結論

Java レコードは Java 言語への強力な追加機能であり、最小限のコードで不変のデータ キャリアを簡単に作成できるようになります。コードの可読性が向上し、定型文が削減されるため、開発者はアプリケーションのコア ロジックに集中できるようになります。

以上がJava レコード タイプの探索の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!