Vasil's and Maxim's answer helped me.
Personally, I prefer the syntax where implicit is used for adding such parameters (the presented : ClassTag is shorthand for it. So here, in case someone else also sees this to be a better way:
import scala.reflect.ClassTag object WorkUnitController extends Controller { def updateObject[T](toUpdate: T, body: JsonObject)(implicit tag: ClassTag[T]){ val source = gson.fromJson(body, tag.runtimeClass) ??? } } DisclaimerDemonstration: I did not compile the above, but my own similar code works this way.https://scastie.scala-lang.org/Vij5rpHNRDCPPG1WHo566g