如何解决字段是否干扰了Scala动态特征的方法解析?
| 在我第一次涉足Dynamic Scala领域时,我认为我想尝试通过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
这是设计使然,疏忽还是计划修复的问题?
解决方法
FWIW,我为此提出了一个修复程序https://github.com/scala/scala/pull/98
如果被接受,则它的确会在Dynamic从-Xexperimental中退出时修复。
, 在Martin Odersky的Scala-Lang邮件列表中回答
我认为这应该在Dynamic从-Xexperimental出来时解决。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。