2016-06-14 17 views

答えて

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

関連する問題