Scala:如何通过名称动态访问类属性?

jbr*_*own 12 scala

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

例如给定类(它不能是一个案例类):

class Row(val click: Boolean,
          val date: String,
          val time: String)
Run Code Online (Sandbox Code Playgroud)

我想做的事情如下:

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?
Run Code Online (Sandbox Code Playgroud)

Kam*_*ski 17

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))
}
Run Code Online (Sandbox Code Playgroud)