我有一个trait
带有泛型参数的方法,其中包含我试图将默认实现定义为“空”的方法。
trait MetaBase[T <: Throwable] {
...
def riskWithEvent[V](
vToEvaluate: => V,
failureTEvent: FailureBase[T, V] => Unit = _ => ()
): TryBase[T, V] =
...
}
我在 . 之后的下划线处收到“缺少参数类型”错误failureTEvent: FailureBase[T, V] => Unit =
。我无法弄清楚如何让 Scala 编译器放弃在那个时候必须知道类型信息,因为它不被使用或不需要。
我考虑将参数更改为:
failureTEvent: Option[FailureBase[T, V] => Unit] = None
但是,我不喜欢客户现在必须将他们的功能包装在Some()
. 我更希望允许他们不指定参数,或者指定没有包装器的参数。
非常感谢对此的任何指导。