2013-07-25 18 views
3

说我有一类A,应与特质B相混合,其中B基于标记b1应该是B1B2有条件的特质混入

val b1: Boolean 

type B = if (b1) B1 else B2 // impossible Scala code 

class A extends B 

有没有办法为“动态”混入基于条件的特质?

回答

3

类型是定义在编译时固定的静态事物。不过,您可以使用if/else逻辑创建变体匿名类的实例:

val a = if (b) new A with B1 else new A with B2