我在父类上的数据绑定有一些问题。

结构如下:

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.someFieldEquity上的控件添加数据绑定?

最佳答案

原来我只是愚蠢的。我忘记在private Entity e;类中为Instrument创建getter和setter。添加这些内容后,它在e.someField上也可以正常工作

10-01 05:31