【发布时间】:2014-05-14 12:48:17
【问题描述】:
我正在使用 Eclipse RCP 4,我的 WritableValue 没有什么问题:
我在数据绑定中使用WritableValue(见下文),每当我将WritableValue 的值设置为包含int 属性(绑定的一部分)的对象时,我都会收到ClassCastException :
Caused by: java.lang.ClassCastException: Cannot cast java.lang.Integer to int
at java.lang.Class.cast(Unknown Source)
at org.eclipse.core.internal.databinding.beans.PojoValueProperty.doGetValue(PojoValueProperty.java:62)
at org.eclipse.core.databinding.property.value.ValueProperty.getValue(ValueProperty.java:60)
at org.eclipse.core.internal.databinding.property.value.SimplePropertyObservableValue.notifyIfChanged(SimplePropertyObservableValue.java:119)
at org.eclipse.core.internal.databinding.property.value.SimplePropertyObservableValue.doGetValue(SimplePropertyObservableValue.java:101)
at org.eclipse.core.databinding.observable.value.AbstractObservableValue.getValue(AbstractObservableValue.java:81)
at org.eclipse.core.internal.databinding.observable.masterdetail.DetailObservableValue.doGetValue(DetailObservableValue.java:150)
at org.eclipse.core.internal.databinding.observable.masterdetail.DetailObservableValue$2.handleValueChange(DetailObservableValue.java:96)
at org.eclipse.core.databinding.observable.value.ValueChangeEvent.dispatch(ValueChangeEvent.java:71)
at org.eclipse.core.databinding.observable.ChangeManager.fireEvent(ChangeManager.java:127)
at org.eclipse.core.databinding.observable.value.AbstractObservableValue.fireValueChange(AbstractObservableValue.java:76)
at org.eclipse.core.databinding.observable.value.WritableValue.doSetValue(WritableValue.java:94)
at org.eclipse.core.databinding.observable.value.AbstractObservableValue.setValue(AbstractObservableValue.java:60)
这是我的绑定:
IObservableValue<?> model2 = PojoProperties.value(PlantBE.class,
"maxAge").observeDetail(getModel().getWritableValue());
ISWTObservableValue<String> view2 = WidgetProperties.textText(SWT.Modify)
.observe(getDialogView().getTxtMaxAge().getText());
this.getDataBindingContext().bindValue(model2, view2);
实体 (PlantBE) 看起来像这样:
public class PlantBE implements Serializable {
private int maxAge;
public int getMaxAge() {
return maxAge;
}
public void setMaxAge(int maxAge) {
this.maxAge = maxAge;
}
}
在这方面获得一些帮助会很棒。也许你知道问题可能是什么。
感谢和问候
【问题讨论】:
标签: java data-binding eclipse-rcp