假设我有一个课程A
应该与特质B
混在一起,其中B
应该是基于旗帜的B1
或B2
b1
:
val b1: Boolean
type B = if (b1) B1 else B2 // impossible Scala code
class A extends B
有没有办法根据条件“动态”混合特质?
答案 0 :(得分:3)
类型是静态的东西,定义在编译时固定。您可以使用if / else逻辑创建变体匿名类的实例,但是:
val a = if (b) new A with B1 else new A with B2