有条件的特质混合

时间:2013-07-25 16:23:28

标签: scala traits

假设我有一个课程A应该与特质B混在一起,其中B应该是基于旗帜的B1B2 b1

val b1: Boolean

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

class A extends B

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

1 个答案:

答案 0 :(得分:3)

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

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