是否可以在scala中为特征成员设置别名?

时间:2016-09-08 09:57:57

标签: scala

想象一下,我有一个特点:

trait A {
    type Elem
    def list(e: Elem): List[Elem]
}

是否有可能以某种方式创建一个延伸两次的对象?

我知道你不能两次继承相同的特性,但它可以(在某些情况下)可以有类似的东西:

trait B extends A 

object Server extends A with B {
}

那么,是否有可能以某种方式为A中的特征成员B添加别名?例如。那么在Server我可以设置A.Elem = IntB.Elem = String并让scala使用方法重载来调用相应的list函数吗?

我的用例是我构建了一个HTTP端点,它接受表单类的特定实现。但是,我想允许它处理几个不同的表单类(例如DetailedRegistrationSimpleRegistration)并重用相关的逻辑。

0 个答案:

没有答案