3

Atrait と混合する必要があるクラスがあるとしますB。ここで、またはフラグに基づいているB必要があります。B1B2b1

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 に答える