How to pass vararg as array to function in Kotlin?

Viewed 16791

I want to pass vararg from the buy function to the drive function but I get

a compile error:

required Array<T> found Array<out T>

code:

class Car

fun buy(vararg cars: Car) {
    drive(cars) //compile error
}

fun drive(cars: Array<Car>) {
    //...
}
5 Answers
fun foo(vararg strings: String): Array<out String> {
    return strings
}

//  Define a var 
var yourVar: Array<out String> = foo("a", "b", "c")

// Use var in Java method `public void javaMethod(String... someParam)() {}`
javaMethod(*yourVar)
override fun checkMatch(vararg cards: SetsCard): Int {
    return if (isSet(*cards)) 16 else -2
}

private fun isSet(vararg cards: SetsCard) : Boolean {
    if (cards.size == 3) {
        return true
    }
    return false
}
Related