Let's say you have a Scala function which takes type parameter:
def myFunc[K]: T
Let's say I have several functions like that. Right now, if K could be one of several different values, I'd need some code like the following:
kType match {
case KIsInt => myFunc[Int]
case KIsLong => myFunc[Long]
}
I'd like a generic wrapper function that can switch on kType and call different functions. Is this possible? Something like this.
def kFuncCall[T](kType: KType)(callFunc: [K] => T): T = {
kType match {
case KIsLong => callFunc[Long]
case KIsInt => callFunc[Int]
}
I'm pretty sure you're trying to do something else (or I misunderstood really bad), but if you just want to pass a different type based on KType, you can put an abstract type member in KType:
If you can't modify KType you do it indirectly via implicits.
Now, the real problem seems the definition of callFunc ... :)