внутри filter, но мне не нравится многословность.
С помощью чего это можно написать красивее?
Пример:
fun List<Data>.filterData(): List<Data> {
return filter {
when {
it.a == "no" -> false
it.b == "no" -> false
it.c == 0 -> false
else -> true
}
}
}
return@filter it.a == "no" -> false || it.b == "no" ...
а если эти условия еще должны в какой-то момент добавлятся/удалятся/изменятся. То подошел бы какой-нибудь паттерн CriteriaBuilder.
fun List<Data>.filterData() = filter { it.a != "no" && it.b != "no" && it.c != 0 }
собственно как выше и посоветовали. ввести всякие переменные и в конце написать что-то вроде predicates.all { it(listItem) }
Вот, к этом пытаюсь подобраться. Всем спасибо.
Обсуждают сегодня