0
有沒有辦法讓scala反射的字段類型?如何使用反射來獲取字段的類型?
讓我們看到標準的反射例如:
scala> class C { val x = 2; var y = 3 }
defined class C
scala> val m = ru.runtimeMirror(getClass.getClassLoader)
m: scala.reflect.runtime.universe.Mirror = JavaMirror ...
scala> val im = m.reflect(new C)
im: scala.reflect.runtime.universe.InstanceMirror = instance mirror for [email protected]
scala> val fieldX = ru.typeOf[C].declaration(ru.newTermName("x")).asTerm.accessed.asTerm
fieldX: scala.reflect.runtime.universe.TermSymbol = value x
scala> val fmX = im.reflectField(fieldX)
fmX: scala.reflect.runtime.universe.FieldMirror = field mirror for C.x (bound to [email protected])
scala> fmX.get
res0: Any = 2
有沒有辦法做這樣的事情
val test: Int = fmX.get
這意味着我能「投」的結果反映get
的實際類型領域的?否則:是否可以從字符串中反射set
?在這個例子中,像
fmx.set("10")
感謝提示!