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

PHPz
リリース: 2024-02-06 10:42:09
転載
1097 人が閲覧しました
質問の内容

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

そこで、リクエスト オブジェクト (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 までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート