ClassCastException org.jdesktop.DataSet.DataRow to TypedData



我有这个类型的数据行:

import org.jdesktop.dataset.DataRow;
public class MainDataRow extends DataRow {
  private MainDataTable baseDataTable;
  protected MainDataRow(MainDataTable dt) {
    super(dt);
    this.baseDataTable = dt;
  }
  public int    getId()                           { return (int)    super.getValue(baseDataTable.getId()); };
  public void   setId(int id)                     {                 super.setValue(baseDataTable.getColId(), id); };
  public int    getDelta()                        { return (int)    super.getValue(baseDataTable.getColDelta()); };
  public void   setDelta(int delta)               {                 super.setValue(baseDataTable.getColDelta(), delta); };
  public String getNombre()                       { return (String) super.getValue(baseDataTable.getColNombre()); };
  public void   setNombre(String nombre)          {                 super.setValue(baseDataTable.getColNombre(), nombre); };

主数据表格式良好,工作正常。现在我要做的是将一个新行附加到 MainDataTable:

MainDataTable dt = new MainDataTable(ds);
MainDataRow dr = (MainDataRow) dt.appendRow();

我正在获得ClassCastException。问题出在哪里?谢谢。

Edit MainDataTable 是一个类型化的数据表,对 appendRow() 没有覆盖:

public class TypedDataTable<TypeOfRow> extends DataTable {
...
}
public class MainDataTable extends TypedDataTable<MainDataRow> {
...
}

appendRow() 返回 DataRow 对象,而不是 MainDataRow 对象。这就是你的演员阵容失败的原因。由于 MainDataRow 扩展了 DataRow,只需执行

MainDataRow dr = dt.appendRow();

并从那里扩展功能。

相关内容

  • 没有找到相关文章

最新更新