var値が変更されたデータクラスオブジェクトをコピーできないのはなぜですか?変更されたvar値を持つKotlinデータクラスのコピー
0
A
答えて
6
copy
メソッドは元のオブジェクトを変更しません。変更された値を持つ新しいオブジェクトを返します。あなただけ行うことができます、あなたはstate
-objectのリスト値を変異させる場合
val list = state!!.list.subList(0,1)
// Creates a new object with the new list.
val withNewList = state.copy(list = list)
// Creates a new object with the new isFetching.
val withNewIsFetching = withNewList.copy(isFetching = true)
:私はあなたの例を試してみました、と私は新しいval
で返されたオブジェクトをキャプチャするとき、あなたのコピーの両方が期待どおりに動作しますこれは:
val list = state!!.list.subList(0,1)
state.list = list
+2
また、 '!!'オペレータを使ってNullPointerExceptionsを避ける代わりに、 'val list = state?.list?.subList(0,1)?:emptyList()'を実行する必要があります。 – marstran
関連する問題
- 1. Json to kotlinデータクラス
- 2. Spring/Jacksonを使用したKotlinデータクラス
- 3. 変更された値を持つ新しいオブジェクトにオブジェクトをコピーする
- 4. KotlinデータクラスとNULL可能タイプ
- 5. kotlinデータクラス+ bean検証jsr 303
- 6. シリアル化用のコンストラクタを持つKotlinデータクラスを使用するパーセルの使用
- 7. Javaインターフェイスを実装するKotlinデータクラス
- 8. Kotlin - "計算された" varプロパティの有用性
- 9. ロックされた変数を持つR5参照クラスのコピー
- 10. 変更された値を持つPythonのデータフレームを更新する
- 11. Kotlinの構造化変数がペア、トリプル、またはデータクラスで動作しない
- 12. デフォルトの値を持つvarプロトタイプ
- 13. コピーSVN変更されたファイルのみを別のディレクトリにコピー
- 14. 変更クラス変数は、私はNSDictionaryの型の変数を一つのデータクラスを持っているスウィフト
- 15. Kotlinデータクラスのスーパークラスコンストラクタを呼び出す前の関数へのアクセス
- 16. エントリ値が変更されたときのラベル値の変更
- 17. Kotlin:密封されたクラスはデータクラスを「含む」ことはできませんか?どうして?
- 18. 変更VAR
- 19. JavaScript:参照されたオブジェクトキーを変更せずにオブジェクトキー値をコピー
- 20. jqueryのHTMLは()私はこのようなテキストボックスを持つフォームを持って変更された値
- 21. jQuery UI datepickersを持つコピーされたhtml要素のDatepicker
- 22. 古い値を持つvar型で新しい値を追加
- 23. Safariでサイズ変更された画像を持つFlexbox
- 24. Kotlinのlambdasを持つ匿名クラス
- 25. 複数のデータクラスを持つ行をマージする
- 26. mysqlのデータベース間で変更されたレコードをコピーする
- 27. Html.DropDownList選択された値の変更
- 28. RSpecのは私がテストしたいいくつかのインスタンス変数を持つコントローラのアクションを持つインスタンスVAR
- 29. 他のクラスで変更され使用される変数を持つjava
- 30. SQLiteをコピーして1つのクエリで2つの値を変更する
'copy'が新しいインスタンスを返し、受信者を変更しないことは知っていますか? – nhaarman