有关向上转型的问题:
 代码如下package guestbook;import com.borland.dx.dataset.*;
import com.borland.dx.sql.dataset.*;public class GuestBookDM implements DataModule {
  private static GuestBookDM myDM;
  Database database1 = new Database();
  QueryDataSet signatures = new QueryDataSet();
  public static GuestBookDM getDataModule() {
    if (myDM == null) {
      myDM = new GuestBookDM();
    }
    return myDM;
  }  public GuestBookDM() {
    try {
      jbInit();
    }
    catch(Exception e) {
      e.printStackTrace();
    }
  }
  private void jbInit() throws Exception {
    signatures.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(database1, "SELECT SIGNATURES.NAME,SIGNATURES.COMMENT FROM SIGNATURES", null, true, Load.ALL));
    database1.setConnection(new com.borland.dx.sql.dataset.ConnectionDescriptor("jdbc:borland:dslocal:C:\\Program Files\\JBuilderX\\samples\\JDataStore\\datastores\\guestbook.jds", "Sample", "", false, "com.borland.datastore.jdbc.DataStoreDriver"));
    signatures.open();
  }
  public Database getDatabase1() {
    return database1;
  }
  public QueryDataSet getSignatures() {
    return signatures;
  }  public void insertNewRow(String name, String msg){
    try{
      DataRow dataRow1 = DataRow(signatures, new String[] {"Name", "Comment"});
      dataRow1.setString("Name",name);
      dataRow1.setString("Comment",msg);
      signatures.addRow(dataRow1);
    } catch (DataSetException ex){
      ex.printStackTrace();
    }
  }  public void saveNewRow(){
    try {
      database1.saveChanges(signatures);
    } catch (DataSetException ex){
      ex.printStackTrace();
    }
  }
}其中不能转型的那行如下:
DataRow dataRow1 = DataRow(signatures, new String[] {"Name", "Comment"});类DataRow有一个构造函数public DataRow(DataSet dataSet, String[] stringArray) { }这表明构造函数中的第一个参数只要是DataSet或是继承自DataSet即可,
signatures是QueryDataSet类型,而QueryDataSet继承自StorageDataSet,StorageDataSet又继承自DataSet,那就是说signatures间接继承自DataSet。但是编译期就提示错误说signatures不是DataSet型别,请那为高手知道的指点一下啊!!!