filterIsInstance

inline fun <R> Array<*>.filterIsInstance(): List<R>(source)
inline fun <R> Iterable<*>.filterIsInstance(): List<R>(source)

Returns a list containing all elements that are instances of specified type parameter R.

Since Kotlin

1.0

Samples

import kotlin.test.*

fun main() { 
   //sampleStart 
   open class Animal(val name: String) {
    override fun toString(): String {
        return name
    }
}
class Dog(name: String): Animal(name)
class Cat(name: String): Animal(name)

val animals: List<Animal> = listOf(Cat("Scratchy"), Dog("Poochie"))
val cats = animals.filterIsInstance<Cat>()

println(cats) // [Scratchy] 
   //sampleEnd
}
fun <R> Array<*>.filterIsInstance(klass: Class<R>): List<R>(source)
fun <R> Iterable<*>.filterIsInstance(klass: Class<R>): List<R>(source)

Returns a list containing all elements that are instances of specified class.

Since Kotlin

1.0

Samples

import kotlin.test.*

fun main() { 
   //sampleStart 
   open class Animal(val name: String) {
    override fun toString(): String {
        return name
    }
}
class Dog(name: String): Animal(name)
class Cat(name: String): Animal(name)

val animals: List<Animal> = listOf(Cat("Scratchy"), Dog("Poochie"))
val cats = animals.filterIsInstance(Cat::class.java)

println(cats) // [Scratchy] 
   //sampleEnd
}