我在父类上的数据绑定有一些问题。
结构如下:
class Instrument{
//some more fields
private Entity e;
}
class Equity extends Instrument{
//some fields (not someField)
}
class Entity{
private String someField;
}
我想调用
PropertyDescriptor descriptor = PropertyUtils.getPropertyDescriptor(model.getValue(), propertyName);
,其中model.getValue()
返回类型为Equity
的对象,而propertyName
指定字段名称(Instrument.e
)。我尝试了各种方法,例如:
super.e.someField
e.someField
instrument.e.someField
someField
每种方法都会失败,但最后一种方法会失败
java.lang.NoSuchMethodException: Unknown property 'someField' on class 'class Equity'
即使它没有引发该异常,也不会设置任何值,即使有一个也是如此。
所以我的问题是,如何从
Instrument.e.someField
向Equity
上的控件添加数据绑定? 最佳答案
原来我只是愚蠢的。我忘记在private Entity e;
类中为Instrument
创建getter和setter。添加这些内容后,它在e.someField
上也可以正常工作