Прежде всего, ваш код неверен. Согласно документам , функция фильтра возвращает список , содержащий только элементы, соответствующие данному предикату. Итак, вместо val list: Dog
вы должны использовать val list: List<Dog>
.
Насколько я понял, вы хотите получить список собак из списка животных, который удовлетворяет условию it.age > 5
. Чтобы решить эту проблему, вы можете использовать filterIsInstance()
:
open class Animal(val age: Int)
class Dog(age: Int) : Animal(age)
fun test() {
val animals = mutableListOf<Animal>()
animals.add(Dog(6))
animals.add(Animal(7))
animals.add(Dog(8))
val list: List<Dog> = animals
.filterIsInstance(Dog::class.java)
.filter {
it.age > 5
}
}