【Salesforce】SObject型のcloneについて調べた

【Salesforce】SObject型のcloneについて調べた

SalesforceのApexでSObject型というのがありますね。

SObjectを複製するメソッドなのですが、たまに引数を忘れるのでメモです。

clone項目について確認しておきましょう。

https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_methods_system_sobject.htm

引数 説明 デフォルト
preserveId Boolean 元のオブジェクトのIDを保持するか false
isDeepClone Boolean 各フィールドの値を完全にコピーするか、参照のみか false
preserveReadonlyTimestamps Boolean 参照のみのタイムスタンプ項目を重複で保持するか削除するか false
preserveAutonumber Boolean 自動採番項目をコピーするか false

すべて省略可能な引数なんですね。

コピーしたSObjectの値を変更しないのであれば、引数も必要ないようです。

たまにcloneの引数が分からなくなったりしますが、「clone(false, true)」の形で使用されているのを一番よく見る気がします。

逆に、第三引数や第四引数は見たことがありません。

あまり使われないのでしょうか。。

注意が必要なのは、取得していない項目については値が設定されないことでしょうか。

cloneするオブジェクトの項目が増えた際には、必要であればApex側の修正も必要になりますね。

No comments.

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です