Я пытаюсь выполнить довольно простую задачу: назначить свойства объекту и вернуть тот же объект после получения информации с помощью вызова REST.
В моем блоке runBlocking я использую функцию apply, чтобы изменить свойства моего объекта, но после попытки разных способов назначить их, создать экземпляр самого объекта, изменив конструкцию logi c объекта, я все равно получаю объект со значениями по умолчанию.
Вот мой объект Info :
class DrivingLicenceInfo {
var type : String = ""
var nationality : String = ""
var number : String = ""
var releaseDate : String = ""
var expiryDate : String = ""
}
Вот метод, который доставляет мне проблемы:
private fun getDerivingLicenceInfoAndWaitForCompletion(): DrivingLicenceInfo {
return runBlocking {
val response = retrieveDrivingLicenceInfoAsync().await()
if (response.isSuccessful) {
var info = DrivingLicenceInfo()
response.body()?.let {
info.apply {
it.data.let { data ->
val type = data.guy
val drivingLicenseNationality = data.drivingLicenseNationality
val drivingLicenseNumber = data.drivingLicenseNumber
val drivingReleaseDate = data.drivingReleaseDate
val drivingExpiryDate = data.drivingExpiryDate
this.type = type
this.nationality = drivingLicenseNationality
this.number = drivingLicenseNumber
this.releaseDate = drivingReleaseDate
this.expiryDate = drivingExpiryDate
}
}
info
Log.i("driving.info.call", info.type)
}
}
DrivingLicenceInfo()
}
}
И вот где я его использую, в моем Main, и где я получаю информационный объект с пустыми строками в качестве свойств
private void getDrivingLicenceData() {
DrivingLicenceInfoService service = new DrivingLicenceInfoServiceImpl(context);
DrivingLicenceInfo info = service.getDrivingLicenceInfo();
Log.i("driving.info.main",info.getType());
profileViewModel.licenceNumber.postValue(info.getNumber());
profileViewModel.licenceExpiryDate.postValue(info.getExpiryDate());
}
Журнал в runBlocking правильно показывает свойство, журнал в моем Main даже не отображается. Используя отладчик, я вижу, что информация имеет пустые строки в качестве значения.
Может ли кто-нибудь помочь мне понять, что я делаю неправильно?
Спасибо