Scala:如何按名称动态访问类属性? [英] Scala: How to access a class property dynamically by name?

查看:57
本文介绍了Scala:如何按名称动态访问类属性?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在 Scala 2.10.x 中通过名称动态查找对象属性的值?

How can I look up the value of an object's property dynamically by name in Scala 2.10.x?

例如鉴于类(它不能是一个案例类):

E.g. Given the class (it can't be a case class):

class Row(val click: Boolean,
          val date: String,
          val time: String)

我想做类似的事情:

val fields = List("click", "date", "time")
val row = new Row(click=true, date="2015-01-01", time="12:00:00")
fields.foreach(f => println(row.getProperty(f)))    // how to do this?

推荐答案

class Row(val click: Boolean,
      val date: String,
      val time: String)

val row = new Row(click=true, date="2015-01-01", time="12:00:00")

row.getClass.getDeclaredFields foreach { f =>
 f.setAccessible(true)
 println(f.getName)
 println(f.get(row))
}

这篇关于Scala:如何按名称动态访问类属性?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆