Kotlin不允许我的子类将vararg传递给我的超类构造器这是我的Operation类:
package br.com.xp.operation
import java.util.ArrayList
abstract class Operation(vararg values: Value) : Value {
protected var values: MutableList<Value> = ArrayList()
internal abstract val operator: String
}
这是我的SubtractionOperation类:
package br.com.xp.operation
class SubtractionOperation private constructor(vararg values: Value) : Operation(values) {
override val operator: String
get() = "-"
}
编译说:
类型不匹配必需值找到数组
任何人都可以解释为什么这是不可能的?
1 回答
来自the docs:
所以在
SubtractionOperation
构造函数中,values
实际上是Array<Value>
. 您需要使用 spread 运算符(*
)来转发它们: