2011-06-01 49 views
4

作为我第一次进入Dynamic Sc​​ala领域,我认为我会尝试通过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 

这是设计,疏忽还是计划修复的东西?斯卡拉郎邮件列表上

+0

它似乎有点隐藏的兴趣,但没有人有任何想法 - 而斯卡拉邮件列表是好奇地沉默。 – 2011-06-03 13:18:17

回答

0

回答马丁·奥德斯基

我想这应该由动态出来-Xexperimental的时间是固定的。