У меня эти классы определены.Scala generics в функции возвращаемое значение
trait ResultTrait {
}
case class PostResult (
@Key("_id") id: String,
success: String,
errors: Seq[String] = Seq.empty
) extends ResultTrait
case class PostError (
message: String,
errorCode: String
) extends ResultTrait
Это не скомпилирует. Он дает ошибку «Требуется T», но найден PostResult (или PostError) ».
def postLead[T <: SFDCResult](accessToken: AccessToken):
Future[T] = {
// depends on response from request, return PostResult or PostError
}
Когда вы делаете метод generic, вы говорите, что вызывающий абонент принимает решение о том, что такое 'T' (возможно, с некоторыми ограничениями), а не как разработчик. –