所以,我想爲android sqlite創建一個小型庫,並且我已經獲得了大部分基本函數,但是我遇到的問題是將結果作爲特定類。我有將泛型投射到它的子類
abstract public class Table<RowClass extends Row>{
public List<RowClass> fetchAll() {
//Fetch the stuff here
//In the while class to add each row to the array
RowClass row = (RowClass) new Row();
}
}
但每當我試圖登錄row.getClass()的getName(),它總是回來爲行,而不是RowClass,和它的作用,而不是像RowClass行。我怎樣才能將它投到RowClass?
編輯:什麼表
public class SourcesTable<Rowclass extends Row> extends Table<Row>
{
public String getName()
{ return "sources"; }
public String[] getAllColumns()
{
String[] columns = { "name" };
return columns;
}
}
延伸,我
Tables sourcesTable = new SourcesTable<SourcesRow>();
List<SourcesRow> list = sourcesTable.fetchAll();
凡
public class SourcesRow extends Row
{
public String toString()
{ return this.data.get("name"); }
}
而且
public class Row
{
public String toString()
{ return ""; }
}
初始化它
對不起,如果這是混亂,我正在學習Java來自PHP,所以我可能會繞錯誤的方式,我只是不習慣嚴格類型鑄造
如果RowClass擴展Row,如何將Row投射到RowClass? –
你能告訴我們調用代碼嗎? (即擴展表的類和它的實例化)。我們可能能夠更好地澄清你的誤解 – torquestomp
您的問題措辭不當或我不明白,因爲在我看來,您的問題是擴展問題,而不是泛型。通過「將泛型轉換爲其子類」,你究竟意味着什麼?因爲RowClass本身不是通用的。表和列表是...需要更多的代碼。 –