Scala

Scala - Annotation Customizing Example.

YoonHyeonJoon 2022. 4. 20. 15:29
// Create Annotation `Mammal`
class Mammal(indigenous:String) extends scala.annotation.StaticAnnotation

// Annotate class Platypus as a `Mammal`
@Mammal(indigenous = "North America")
class Platypus{}

object Maker extends App{
  val platypusType = u.typeOf[Platypus]
  val platypusSymbol = platypusType.typeSymbol.asClass

  platypusSymbol.annotations.foreach{ anItem =>
    anItem.tree.children.tail.foreach{ context =>
      print(context)
   }
  }

  val ff = 1
}