我有几种方法希望使用嵌套的泛型类型作为其返回类型。
import scala.language.higherKinds
trait DBClient {
def execute[T[U] <: DataStoreItem[U]](ops: ScanamoOps[Result[T]]): Future[U]
}
但这不起作用。我无法在返回类型中使用U
。还有其他方法可以定义上述方法,在该方法中我可以在返回类型中使用嵌套类型U
。
我也尝试过:
trait DBClient {
def execute[U, T <: DataStoreItem[U]](ops: ScanamoOps[Result[T]]): Future[U]
}
这也不起作用。感谢您的帮助,我对scala泛型和高阶类型非常陌生。所以请原谅我的无知。
答案 0 :(得分:0)
我几乎是对的。
import scala.language.higherKinds
trait DBClient {
def execute[T[U0] <: DataStoreItem[U0], U](ops: ScanamoOps[Result[T[U]]]): Future[U]
}