Val обновляется - PullRequest
0 голосов
/ 08 мая 2020

У меня есть этот код ниже.

val newObject = oldObject.person //this is an open class realm object
newObject?.let{
   oldObject.person = null
}

newObject теперь null после переназначения oldObject.person. Как мне этого избежать? Мне нужно newObject, чтобы сохранить начальное значение oldObject.person перед обновлением.

1 Ответ

2 голосов
/ 08 мая 2020

Проблема в том, что newObject указывает на ту же ссылку, что и атрибут person

val newObject = oldObject.person.copy()

Если вы не можете этого сделать, потому что тип person не позволяет копировать (не класс данных на примере), то вы должны создать нового человека и вручную скопировать все атрибуты человека

val neeObject = Person(
    attribute1 = oldObject.person.attribute1
    ...
)

Затем вы можете обновить person в oldObject, потому что это не будет та же ссылка .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...