2013-07-25 2 views
3

Скажем, у меня есть класс A, которые должны быть смешаны с признаком B, где B должны быть B1 или B2 на основе флага b1:Условные Trait Примеси

val b1: Boolean 

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

class A extends B 

Есть ли способ «динамически» смешивать признак на основе состояния?

ответ

3

Типы - это статические вещи с определениями, зафиксированными во время компиляции. Вы можете создавать экземпляры вариантов анонимных классов, используя if/else логику:

val a = if (b) new A with B1 else new A with B2 
Смежные вопросы