Scala 条件性状混合子

Scala 条件性状混合子,scala,traits,Scala,Traits,假设我有一个类a,它应该与traitB混合在一起,其中B应该是B1或B2,基于一个标志B1: val b1: Boolean type B = if (b1) B1 else B2 // impossible Scala code class A extends B 有没有一种方法可以基于条件“动态”混合特征?类型是静态的,在编译时定义是固定的。您可以使用if/else逻辑创建变量匿名类的实例,但是: val a = if (b) new A with B1 else new A with

假设我有一个类
a
,它应该与trait
B
混合在一起,其中
B
应该是
B1
B2
,基于一个标志
B1

val b1: Boolean

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

class A extends B

有没有一种方法可以基于条件“动态”混合特征?

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

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

如果(b)使用B1新建A,或者使用B2新建A,我有没有办法将其继承到另一个类,即
类C?