Scala:如何按名称动态访问类属性? [英] Scala: How to access a class property dynamically by name?
本文介绍了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屋!
查看全文