有关向上转型的问题:
代码如下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型别,请那为高手知道的指点一下啊!!!
代码如下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型别,请那为高手知道的指点一下啊!!!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货