ホームページ  >  記事  >  Java で、オブジェクトの値を新しいオブジェクトにコピーし、別の参照変数に影響を与えずにデータを変更する方法

Java で、オブジェクトの値を新しいオブジェクトにコピーし、別の参照変数に影響を与えずにデータを変更する方法

PHPz
PHPz転載
2024-02-06 10:42:091082ブラウズ
質問の内容

コンソールにマスクされたデータを含むリクエスト本文を出力する必要があります。そこで、コンソールに出力するためにマスクされたリクエストオブジェクトと、マスクされていない業務に使用されるリクエストオブジェクトを分離したいと考えています。

そこで、リクエスト オブジェクト (underwriterequest request) を新しいオブジェクト (underwriterequest requestmasking) に複製し、メソッドを使用してデータをマスクしました。

しかし、新しいオブジェクトにシールド ID を設定すると、参照オブジェクト (underwriterrequest リクエスト) にもシールドが設定されます。

オブジェクトはビジネス ロジックで使用する必要があるため、(underwriterequest リクエスト) をブロックしたくありません。

それが参照オブジェクトに影響を与えるのはなぜですか? 参照オブジェクトに影響を与えずにデータをマスクするにはどうすればよいですか?

###ありがとう。

リーリー

clone() メソッドを使用して、オブジェクトの値を新しいオブジェクトにコピーします。 新しいオブジェクトのデータを変更しても、参照オブジェクトには影響しないと考えているからです。 https://www.geeksforgeeks.org/clone-method-in-java-2/


正解


SpringBootフレームワークを使用しているようです。 BeanUtils.copyProperties(); メソッドを見てみましょう。このメソッドは、リフレクションを通じて 1 番目と 2 番目のオブジェクトに同じプロパティを割り当てます。あなたが言及した問題は起こらないでしょう

以上がJava で、オブジェクトの値を新しいオブジェクトにコピーし、別の参照変数に影響を与えずにデータを変更する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。