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. データクラスKotlinで変更された値を検出する方法は?
- 2. kotlinデータクラスHttpMessageNotReadableException
- 3. Json to kotlinデータクラス
- 4. 変更された値を持つ新しいオブジェクトにオブジェクトをコピーする
- 5. Kotlinネストされたクラスを持つGson
- 6. Spring/Jacksonを使用したKotlinデータクラス
- 7. KotlinとObjectBox:データクラスの関係
- 8. Kotlinのデータクラス、Androidルームとカスタムセッター
- 9. SpringBoot + Jackson + Kotlinデータクラス:フィールド注釈が無視されました
- 10. シリアル化用のコンストラクタを持つKotlinデータクラスを使用するパーセルの使用
- 11. Kotlin Ktorは、位置データクラス
- 12. KotlinデータクラスとNULL可能タイプ
- 13. KotlinデータクラスGsonシリアル化問題
- 14. Kotlin /アンドロイド - ラムダとデータクラスでKotlinReflectionInternalError
- 15. kotlinデータクラス+ bean検証jsr 303
- 16. は、与えられたkotlinコードでkotlin空のデータクラスのプライマリコンストラクタの回避策
- 17. JSONでデータクラス名を変更
- 18. ロックされた変数を持つR5参照クラスのコピー
- 19. 多くの不変プロパティを持つKotlinデータクラス用のビルダを作成する方法
- 20. 変更された値を持つPythonのデータフレームを更新する
- 21. Gotlで継承されたKotlinデータクラスを逆シリアル化する方法
- 22. Javaインターフェイスを実装するKotlinデータクラス
- 23. Proguard - Kotlinデータクラスを難読化しない
- 24. メモ化Kotlinデータクラスのメンバ関数の次Kotlinの例で
- 25. ブランチとバインドされたメソッドを持つ変更されたナップザック
- 26. デフォルトの値を持つvarプロトタイプ
- 27. Kotlin - "計算された" varプロパティの有用性
- 28. コピーSVN変更されたファイルのみを別のディレクトリにコピー
- 29. 変更された値を持つハッシュの配列を返す方法
- 30. Kotlinの構造化変数がペア、トリプル、またはデータクラスで動作しない
'copy'が新しいインスタンスを返し、受信者を変更しないことは知っていますか? – nhaarman