Я пытаюсь отобразить массив объектов в другой массив с другими типами объектов, я использовал для этого использование потоков в Java 8, это было довольно просто, создать экземпляр объекта, установить его значения и вернуть объект.Я только что перешел на Kotlin, и иногда мне бывает сложнее делать подобные операции.Все примеры, которые я нашел, очень просты и не могут найти то, что я хочу.
У меня есть этот класс BalanceMap:
data class BalanceMap @JsonCreator constructor(
var balType: String,
var value: Any
)
Я получаю данные из Интернетаservice.
val balances: List<AcctBal> = res.getAcctBals();
класс AcctBal выглядит следующим образом
public class AcctBal {
@SerializedName("CurAmt")
@Expose
private CurAmt curAmt;
@SerializedName("Desc")
@Expose
private String desc;
@SerializedName("ExpDt")
@Expose
private LocalDateTime expDt;
}
и попытайтесь сопоставить этот ответ с var balanceList: List<BalanceMap>
balances.map {}
-> var balanceList: List<BalanceMap> = balances.map { t -> fun AcctBal.toBalanceMap() = BalanceMap(
balType = "",
value = ""
)}
Я хочу сделать что-то вроде этого:
List<ProductDetail> details = acctBal.stream().filter(f -> f.getBalType() != null).map(e -> {
String bal = e.getBalType();
if (avalProductInfo.getBankId().equals("00010016")) {
bal = e.getBalType();
}
ProductDetail detail = new ProductDetail();
detail.setItem(bal);
if (e.getCurAmt() != null) {
detail.setValue(e.getCurAmt().getAmt().toString());
} else if (e.getRelationDt() != null) {
detail.setValue(e.getRelationDt().toGregorianCalendar().getTimeInMillis());
} else if (e.getMemo() != null) {
detail.setValue(e.getMemo());
}
return detail;
}).collect(toList());
Я экспериментировал, но всегда ошибался, любая помощь будет высоко оценена.Удачного кодирования!