3
说我有一类A
,应与特质B
相混合,其中B
基于标记b1
应该是B1
或B2
:有条件的特质混入
val b1: Boolean
type B = if (b1) B1 else B2 // impossible Scala code
class A extends B
有没有办法为“动态”混入基于条件的特质?
说我有一类A
,应与特质B
相混合,其中B
基于标记b1
应该是B1
或B2
:有条件的特质混入
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