This question is about scala reflection.
object MyEnum extends Enumeration {
type MyEnum = Value
val En1, En2 = Value
}
case class Data(
en: MyEnum,
num: Int
)
def initData[T](d: Array[String])(implicit t: ClassTag[T]): T = {
// using reflection to get type of the parameters
val clazz = currentMirror.classSymbol(t.runtimeClass)
val module = clazz.companion.asModule
val im = currentMirror.reflect(currentMirror.reflectModule(module).instance)
val ts = im.symbol.typeSignature
val methodName = "apply"
val constructor = ts.member(TermName(methodName)).asMethod
for (ps
In Java, it is related simple. But It is so hard to link Type and reconstruct it in Scala.
Aucun commentaire:
Enregistrer un commentaire