在Scala中部分指定类型参数?

时间:2014-07-28 12:39:14

标签: scala type-parameter

  def apply[T, LP <: ViewGroupLayoutParams[_, TSpinner[T]]]()(implicit context: android.content.Context, defaultLayoutParam: TSpinner[T] => LP): TSpinner[T] = {
    val v = new TSpinner[T]
    v.<<.parent.+=(v)
   v
}

是否可以只提供一个参数?

val v = new TSpinner[T]()

因为通常情况下,没有参数T,其他参数都是隐式+推断的

1 个答案:

答案 0 :(得分:0)

您可以将LP定义为抽象类型成员,从函数的类型列表中删除LP。

type LP[T,O] <: ViewGroupLayoutParams[O, TSpinner[T]]

def apply[T]]()(implicit context: android.content.Context, defaultLayoutParam: TSpinner[T] => LP[T,_]): TSpinner[T]