我正在使用Scala 2.11.0-M5。
我需要找到Scala类/类型的字段(vars或val成员)以及我需要找到类/类型的每个字段。
到目前为止,我已经能够获得现场成员,但是一旦我有了成员,我就无法弄清楚如何获得成员的类型。
scala> class Account {
var name: String = null;
var accountNumber: String = null;
} | | |
defined class Account
scala> import reflect.runtime.universe._
import reflect.runtime.universe._
scala> for (m <- typeOf[Account].members.filter(m => !m.isMethod)) {
| println(m)
| // ??? how do I get the member's type ????
| }
variable accountNumber
variable name
答案 0 :(得分:8)
您可以使用typeSignature
:
scala> typeOf[Account].members.filter(!_.isMethod).foreach(
| sym => println(sym + " is a " + sym.typeSignature)
| )
variable accountNumber is a String
variable name is a String
在此上下文中,此方法将返回reflect.runtime.universe.Type
。
答案 1 :(得分:0)
想出来。
只需要使用m.typeSignature
for (m <- typeOf[Account].members.filter(m => !m.isMethod)) {
| println(m)
| println(m.typeSignature)
| }
variable accountNumber
String
variable name
String