作为我第一次进入Dynamic Scala领域,我认为我会尝试通过applyDynamic来访问bean属性。字段干扰Scala动态特征的方法解析?
我的头很粗剪是
trait BeanProperties extends Dynamic {
def applyDynamic(name: String)(args: Any*) = {
if (args.length == 0)
PropertyUtils.getProperty(this, name)
else
null
}
}
使
val bean = new JTextField("text") with BeanProperties
bean.getText should equal("text")
bean.text should equal("text")
越远越好!但是当我尝试
bean.background should equal(bean.getBackground)
编译器抱怨,试图改为访问名为背景的字段,而不是合成方法。
variable background in class Component cannot be accessed in javax.swing.JTextField with BeanPropertiesTest.this.BeanProperties
这是设计,疏忽还是计划修复的东西?斯卡拉郎邮件列表上
它似乎有点隐藏的兴趣,但没有人有任何想法 - 而斯卡拉邮件列表是好奇地沉默。 – 2011-06-03 13:18:17