我試圖修改我的代碼,以避免使用泛型的所有重複代碼。java,generic和getAll
我有一個DBBaseClass類將被其他類擴展。我試圖創建一個getAll方法,它返回存儲在數據庫中的子類的所有對象。
class abstract DBBaseClass {
abstract readDataBase(int _id);
public <T extends DBBaseClass> List<T> getAll()
{
List<T> array = new ArrayList<T>();
ArrayList<Integer> myints = DBManager.request_database_for_ids(getIdField(), getTableName());
T myTObject = new T(); // NOT WORKING *************************
for (int i=0;i<myints.size();i++) {
myTObject.read(myints.get(i));
array.add(myTObject);
}
return array;
我有錯誤: - 不能實例化類型T - t類是不通用的;它不能被參數化 論據<>
我怎麼instanciate我的T子類在這裏?
訣竅是什麼?
謝謝。
編輯:
爲了解釋更詳細我的目標: 我有兩個類SUbClassA和SubClassB延伸DBBaseClass。
我想要一個方法: SubClassA.getAll()返回SUbClassA對象的數組列表。 SubClassB.getAll()返回SUbClassB對象的數組列表。
起初,我在我所有的子類中創建了getAll ...所以,我現在要把這個getAll()放到DBBase類中。
如果我想讓他們返回List,但我不知道如何告訴該方法「返回此列表的這種特定類別的子類」,這很容易。
你想讓DBBase類包含它自己的實例嗎?這對我來說看起來很奇怪。請解釋一下,就好像我們是9歲的孩子一樣,你想達到什麼目的。 –