我正在尝试为TaxiRide类创建一个伴随对象,以便能够将其转换为元组。
object TaxiRide extends
Function9[Long, Boolean, String, String, Float, Float, Float, Float, Short]
现在我正在观察一个看似自相矛盾的错误:
Wrong number of type arguments for Function9, should be 10
我很好奇为什么会出现这样的错误,并且将case类对象转换为元组的想法是合理的。
答案 0 :(得分:2)
如果您检查Function9 api,则需要添加+R
参数,您需要将该参数传递给返回类型的函数,即Tuple9
。
所以你的功能应该定义如下
object TaxiRide extends Function9[Long, Boolean, String, String, Float, Float, Float, Float, Short, Tuple9[Long, Boolean, String, String, Float, Float, Float, Float, Short]]{
override def apply(v1: Long, v2: Boolean, v3: String, v4: String, v5: Float, v6: Float, v7: Float, v8: Float, v9: Short): (Long, Boolean, String, String, Float, Float, Float, Float, Short) =
(v1, v2, v3, v4, v5, v6, v7, v8, v9)
}
因此,如果您将9个与dataTypes匹配的参数传递给TaxiRide
,那么它应该会返回Tuple9
。
您可以根据您的要求更改returnType
,例如+R
答案 1 :(得分:1)
我猜你想要这样的东西:
object TaxiRide extends Function9[Long, Boolean, String, String, Float, Float, Float, Float, Short, TaxRide]
请注意返回值的最后一个类型参数TaxRide
。