首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ClassCastException org.jdesktop.DataSet.DataRow to TypedDataRow

ClassCastException org.jdesktop.DataSet.DataRow to TypedDataRow
EN

Stack Overflow用户
提问于 2012-04-27 12:19:06
回答 1查看 141关注 0票数 0

我有一个输入的DataRow:

代码语言:javascript
复制
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中追加一个新行:

代码语言:javascript
复制
MainDataTable dt = new MainDataTable(ds);
MainDataRow dr = (MainDataRow) dt.appendRow();

我要去接ClassCastException了。问题出在哪里?谢谢。

Edit MainDataTable是一个类型化的DataTable,没有覆盖appendRow():

代码语言:javascript
复制
public class TypedDataTable<TypeOfRow> extends DataTable {
...
}

public class MainDataTable extends TypedDataTable<MainDataRow> {
...
}
EN

回答 1

Stack Overflow用户

发布于 2012-04-27 12:25:14

appendRow()返回一个DataRow对象,而不是MainDataRow对象。这就是你的演员失败的原因。因为MainDataRow扩展了DataRow,所以只需做

代码语言:javascript
复制
MainDataRow dr = dt.appendRow();

从那里扩展功能。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10350483

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档