给出:
abstract class Databases[F[_]]
我如何使此特征起作用:
// Marker trait signalling the database plugin supports StaticRoles
trait StaticRoles { this: Databases[_] => }
我想确保只在扩展了StaticRoles
的类中混入Databases
,但是我不在乎类型参数F
的具体值。
代码返回:
error: _$1 takes no type parameters, expected: one
这很公平,但是它返回以下错误:
trait StaticRoles { this: Databases[_[_]] => }
我也尝试过:
trait StaticRoles { this: Databases[({type T[X[_]]})#T] => }
哪个给出错误:
error: kinds of the type arguments (AnyRef{type T[X[_]]}#T) do not conform to the expected kinds of the type parameters (type F) in class Databases.
AnyRef{type T[X[_]]}#T's type parameters do not match type F's expected parameters:
type X has one type parameter, but type _ has none
我认为您应该定义如下:
正确的是