【发布时间】:2016-02-11 08:59:16
【问题描述】:
在本例中如何在没有工厂的情况下创建新对象?
def checkErrors[TResult, TError, TException <: Throwable](
result: Either[TError, TResult],
exceptionFactory: TError => TException): TResult = {
result.fold(
err => throw exceptionFactory(err),
ok => ok
)}
checkErrors(Foo.run(), (err: ErrorResponse) => new My CustomException(err.toString))
我想要这样的东西
def checkErrors[TResult, TError, TException <: Throwable](
result: Either[TError, TResult]): TResult = {
result.fold(
err => throw new TException(err.toString),
ok => ok
)}
我尝试使用 ClassTag 没有任何成功,我不想使用类型擦除
【问题讨论】: