要混合的特征的名称在列表中以字符串形式给出

时间:2015-03-26 12:00:23

标签: scala reflection annotations traits scala-macros

我有这样的事情:

trait Color {
  def myname: String = ""
}

trait White extends Color {
  override def myname = super.myname + " white "
}

trait Green extends Color {
  override def myname = super.myname + " green "
}

trait Yellow extends Color {
  override def myname = super.myname + " yellow "
}

object TestA {

  val traitnames: List[String] = List("White", "Green", "Yellow")

  def main(args: Array[String]) {

    class Colors extends White with Green with Yellow
    val c = new Colors

    println(c.myname)

  }
}

我是否有办法使用列表traitnames中的名称来混合类中的特征,比如Colors - 就像main method这里所示 - 而不是手动编写mixin语句?

修改

我可以在某些特征周围使用注释来稍后调用它们来进行混音吗?

0 个答案:

没有答案