作为我第一次涉足DynamicScala领域时,我想我应该尝试通过applyDynamic访问bean属性。
我的第一个非常粗糙的伤口是
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)
编译器抱怨道,试图访问名为background的字段,而不是合成一个方法。
variable background in class Component cannot be accessed in javax.swing.JTextField with BeanPropertiesTest.this.BeanProperties
这是故意的、疏忽还是计划修复的?