,可以通过以下步骤完成:
import scala.reflect.runtime.universe._
val mirror = runtimeMirror(getClass.getClassLoader)
val obj = ... // 要反射的对象
val objType = mirror.reflect(obj).symbol.toType
val primitiveFields = objType.members.collect {
case m: MethodSymbol if m.isGetter && m.isPublic && m.returnType <:< typeOf[AnyVal] =>
m.name.toString -> m.returnType
}
primitiveFields.foreach { case (fieldName, fieldType) =>
println(s"字段名称:$fieldName")
println(s"字段类型:$fieldType")
}
这样,你就可以使用Scala反射从对象获取原语字段的类型了。
推荐的腾讯云相关产品:
领取专属 10元无门槛券
手把手带您无忧上云