Я пытаюсь объединить три списка объектов в один объект с kotlin. Но я не знаю, как это сделать ...
Будет полезна помощь.
Это мой класс данных:
data class User(
val address: Address,
val company: Company,
val email: String,
val id: Int,
val name: String,
val phone: String,
val username: String,
val website: String
)
data class Post(
val body: String,
val id: Int,
val title: String,
val userId: Int
)
data class Comment(
val body: String,
val email: String,
val id: Int,
val name: String,
val postId: Int
)
Что я хочу сделать, это получить один объект, как это возможно, если это возможно:
data class PostJoin(body: String, id: Int, title; String, user: User, comments: List<Comment>)
Это то, что я пытаюсь сделать, могу смешивать только два объекта, но не так, как я хочу.
val postUsers = post.joinBy(users) { (post,user) -> post.userId == user.id }
.map { PostViewModel(post = it.first, user = it.second) }
private inline fun <T : Any, U : Any> List<T>.joinBy(collection: List<U>, filter: (Pair<T, U>) -> Boolean): List<Pair<T, List<U>>> = map { t ->
val filtered = collection.filter { filter(Pair(t, it)) }
Pair(t, filtered)
}