我有这样一个类:我可以在Scala中为抽象类型提供默认值吗?
abstract class CrudResource extends Controller {
type ResourceIdType
def getAction(id: ResourceIdType) = ...
def deleteAction(id: ResourceIdType) = ...
...
}
其目的是使用像这样:
class Payees extends CrudResource {
type ResourceIdType = Int
...
}
我想默认ResourceIdType
来诠释,就像这样:
abstract class CrudResource extends Controller {
type ResourceIdType = Int
...
}
使得ID类型将是Int
,除非子类覆盖它如此:
override type ResourceId = String
但这种失败,编译:
error: overriding type ResourceIdType in class CrudResource, which equals Int;
type ResourceIdType has incompatible type
class Payees extends CrudResource { override type ResourceIdType = String }
是否有可能做我想要做什么?我试过,在CrudResource
,type ResourceIdType <: Any = Int
,但这不是有效的语法。
是的,这是我得到的最接近的,即为父类中的抽象类型提供类型的中间类。 – Bill