Когда я впервые попал на Землю Dynamic Scala, я подумал, что попробую получить доступ к свойствам бина через applyDynamic.
Мой первый очень грубый разрез -
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
Это задумано, упущение или что-то, что планируется исправить?