Java 14のRecordsクラスを使用してequals()メソッドとhashCode()メソッドを自動的に生成する方法
Java 14 で Records クラスを使用して、equals() メソッドと hashCode() メソッドを自動的に生成する方法
Java プログラミングでは、多くの場合、クラス用にquals() メソッドと hashCode() メソッドを作成する必要があります。これら 2 つのメソッドは、オブジェクトの等価性コードとハッシュ コードを扱う場合に非常に重要です。このプロセスを簡素化するために、Java 14 では新しい Records クラスが導入されています。 Records クラスは、equals() メソッドと hashCode() メソッドを記述する簡略化された方法を提供し、これら 2 つのメソッドの実装は、クラスのメンバー変数に基づいて自動的に生成できます。この記事では、Java 14 の Records クラスを使用して、equals() メソッドと hashCode() メソッドを自動的に生成する方法を紹介します。
まず、簡単な例を見てみましょう。 name と age という 2 つのメンバー変数を持つ Person という名前のクラスがあるとします。 2 つの Person オブジェクトが等しいかどうか、およびそれらを生成したハッシュ コードを比較できるようにしたいと考えています。
Java 14 より前は、以下に示すように、equals() メソッドと hashCode() メソッドを手動で記述する必要がありました。
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 int getAge() { return age; } @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null || getClass() != obj.getClass()) { return false; } Person person = (Person) obj; return age == person.age && Objects.equals(name, person.name); } @Override public int hashCode() { return Objects.hash(name, age); } }
上記のコードは、 person クラスのメソッドですが、メンバー変数が等しいかどうかを比較し、ハッシュ コードを生成するロジックを手動で作成する必要があります。
ここで、Records クラスを使用してこのプロセスを簡素化しましょう。 Records キーワードを直接使用してクラスを定義し、そのメンバー変数を指定できます。次に、Records クラスは、equals() メソッドと hashCode() メソッドの実装を自動的に生成します。この場合、次のコードを使用して Person クラスを定義できます。
public record Person(String name, int age) {}
はい、とても簡単です。たった 1 行のコードで Records クラスを定義し、equals() メソッドと hashCode() メソッドの実装を自動的に取得します。
さあ、検証してみましょう:
public class Main { public static void main(String[] args) { Person person1 = new Person("Alice", 25); Person person2 = new Person("Alice", 25); Person person3 = new Person("Bob", 30); System.out.println(person1.equals(person2)); // 输出:true System.out.println(person1.equals(person3)); // 输出:false System.out.println(person1.hashCode()); // 输出:2035395 System.out.println(person2.hashCode()); // 输出:2035395 System.out.println(person3.hashCode()); // 输出:66181377 } }
ご覧のとおり、Records クラスを使用すると、2 つの Person オブジェクトが等しいかどうかを簡単に比較し、ハッシュ コードを生成できます。 Person クラスの equals() メソッドは、2 つのメンバー変数 name と age の等しいかどうかを自動的に比較し、hashCode() メソッドは名前と年齢に基づいてハッシュ コードを自動的に生成します。
さらに、Records クラスは、オブジェクトをインスタンス化し、メンバー変数を通じてその値にアクセスするために使用できるコンストラクターも提供します。たとえば、person.name と person.age を通じて Person オブジェクトの名前と年齢にアクセスできます。
要約すると、Java 14 の Records クラスを使用して、equals() メソッドと hashCode() メソッドを自動的に生成するのは、非常に簡単で便利な方法です。 1 行のコードで Records クラスを定義するだけで、オブジェクトが等しいかどうかを簡単に比較し、ハッシュ コードを生成できます。この自動生成メソッドにより、コードの記述が大幅に簡素化され、開発効率が向上します。このため、Records クラスは Java 14 で非常に便利な機能になりました。
以上がJava 14のRecordsクラスを使用してequals()メソッドとhashCode()メソッドを自動的に生成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undress AI Tool
脱衣画像を無料で

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

phpMyAdminを効果的に保護するには、複数のセキュリティ対策を採用する必要があります。 1. IPを介してアクセスを制限すると、信頼できるIP接続のみが許可されます。 2.デフォルトのURLパスを推測が容易ではない名前に変更します。 3.強力なパスワードを使用して、最小限の権限を備えた専用のMySQLユーザーを作成すると、2要素認証を有効にすることをお勧めします。 4.既知の脆弱性を修正するには、phpmyAdminバージョンを維持します。 5. WebサーバーとPHP構成を強化し、危険な機能を無効にし、ファイルの実行を制限します。 6。信任状の漏れを防ぐために、HTTPSに通信を暗号化するように強制します。 7. HTTP基本認証を使用していない場合、または使用していない場合はPHPMyAdminを無効にします。 8.ログを定期的に監視し、fail2banを構成して、ブルートフォースの亀裂から防御します。 9。セットアップを削除します
![現在、NVIDIA GPUに接続されたディスプレイを使用していません[修正]](https://img.php.cn/upload/article/001/431/639/175553352135306.jpg?x-oss-process=image/resize,m_fill,h_207,w_330)
ifyousee "youarenotusing adisplayatchedtoannvidiagpu、" surseyourmonitoristuntedtothenvidiagpuport、configuredisissettingsintingsintingsintinginstingsintingduandcleaninstall、およびsettheprimarysodiscutodiscreteinbios/ueftereed

XSLTパラメーターは、外部の通過値を介した動的変換の重要なメカニズムです。 1.宣言されたパラメーターを使用し、デフォルト値を設定します。 2。XSLTarGumentListなどのインターフェイスにアプリケーションコード(C#など)から実際の値を渡します。 3.テンプレート内の$ paramName参照パラメーターを介して、条件付き処理、ローカリゼーション、データフィルタリング、または出力形式を制御します。 4.ベストプラクティスには、意味のある名前の使用、デフォルト値の提供、関連するパラメーターのグループ化、および値の検証が含まれます。パラメーターを合理的に使用すると、XSLTスタイルのシートが非常に再利用可能で保守可能になり、同じスタイルシートが異なる入力に基づいて多様な出力結果を生成できます。
![オペレーティングシステムが見つからない[修正]](https://img.php.cn/upload/article/001/431/639/175539300224489.jpg?x-oss-process=image/resize,m_fill,h_207,w_330)
ifyourcomputershows "operatingSystemNotFound、" TrythesESteps:1。checkbios/uefibootorder.2.verifydiskconnections.3.ReasSignDriveLetterViadiskManagement.5.ReinstalltallTallTallTallTallTallTallTallTallTallTallTallTallTallTallTallTallTallTallTalltall

useoptional.empty()、optional.of()、andoptional.ofnullable()tocleateoptionalinstancesは、null、ornull、orpossivally null.2.ceeckforvaluessafelyusingispresent()orpreferablesifppresent()directnullted()aboiddirectnullted()aboiddirestinect()ofoiddirestinect()ofoiddirefrestnullterisent()

Java設計パターンは、一般的なソフトウェア設計の問題に対する再利用可能なソリューションです。 1. Singletonモードは、データベース接続のプーリングまたは構成管理に適したクラスのインスタンスが1つしかないことを保証します。 2。工場モードはオブジェクトの作成を分離し、支払い方法などのオブジェクトは工場のクラスを通じて生成されます。 3.オブザーバーモードは、天気の更新などのイベント駆動型システムに適した、自動的に依存オブジェクトを通知します。 4.ソート戦略などの戦略モードの動的スイッチングアルゴリズムにより、コードの柔軟性が向上します。これらのパターンは、コードの保守性とスケーラビリティを改善しますが、過剰使用を避ける必要があります。

The oilpaintfilterinphotoshopisgreedouturedutivesuredivedocumentmodeorlayertype

adeadlockinjavaoccurswhentwoorthoreThreadsareblockededforever、それぞれの方向に、通常はdueTococularwaitcausedistentlockdoringを使用します
