3

假设我有一个A应该与 trait 混合的类,应该BB或者B1基于B2一个标志b1

val b1: Boolean

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

class A extends B

有没有办法根据条件“动态”混合特征?

4

1 回答 1

3

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

val a = if (b) new A with B1 else new A with B2
于 2013-07-25T17:12:12.330 回答