想到一个案例类的这样的:斯卡拉2.10通行证字段作为参数
case class User(firstname: String, lastname: String)
现在想调用的方法check
与姓
check(User.firstname)
的问题是,该方法check
绝也有该领域的名字。它必须具有字段名和fieldValue方法 - >“名字”和“约翰”
的问题是,是否有可能通过在样式check(User.firstname)
一类,而不是其价值的领域?
我想检查可能看起来像这样(preudocode):
def check(fieldName: String, fieldValue: Any) = {
println(fieldName + ": " + fieldValue)
}
或本
def check(field: Field) = {
println(field.getName)
}
我可以通过字段名作为手串,但问题是,该字符串不如果我重构字段名并且它必须匹配,则更改。
也许一个宏可以帮助吗?还有其他解决方案吗?
问题是当我重构我的类的字段名时枚举名不会自动更改,但它们必须匹配。我可以通过手动反射和场地(实际上我正在这样做)来获得场地,但这会导致非常不舒服的API。 – maklemenz
我想不出其他解决方案。 你可以使用动态特征,以获得更好的api http://www.scala-lang.org/api/current/index.html#scala.Dynamic –