【问题标题】:JFace databinding bind field of parent class父类的JFace数据绑定绑定字段
【发布时间】:2018-09-14 02:39:45
【问题描述】:

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

这是结构:

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'

即使它没有抛出那个异常,它也不会设置任何值,即使有一个值。

所以我的问题是,如何从EquityInstrument.e.someField 上的控件添加数据绑定?

【问题讨论】:

  • 我只是在这里猜测,但是将字段设置为 protected 会改变什么吗?
  • 你的意思是someField
  • 是的,Entity e
  • 没有解决。 e.someField 上的错误仍然相同,没有错误,但 someField 上也没有任何价值。它确实在Equity 指定的字段上正常工作

标签: java data-binding swt jface


【解决方案1】:

原来我简直是傻得要死。我忘了在Instrument 类中为private Entity e; 创建getter 和setter。一旦我添加了这些,它就可以很好地与e.someField

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多