我有一組基本類, EI:尋找從抽象類擴展的靜態方法
public class Item{ }
我想補充的功能擴展與耐儲藏能力基本類:
- 用於將數據從存儲器保存在對象中的新參數
- 從存儲器加載對象的新靜態方法
我創建了一個抽象類,可存儲:
public abstract class Storable{
private StorageRow str;
public void setStorageRow(StorageRow row){
str = row;
}
public static ArrayList<? extends Storable> getAll(){
ArrayList<Storable> ans = new ArrayList<Storable>();
Class<Storable> extenderClass = ??????
ArrayList<StorageRow> rows = Storage.get(llallala);
for(StorageRow row : rows){
Object extender = extenderClass.newInstance();
// Now with reflection call to setStorageRow(row);
}
return ans;
}
}
現在,我向我的基本類可保存:
public class Item extends Storable{}
電話是:
ArrayList<Item> items = (ArrayList<Item>) Item.getAll();
主要問題是:現在我在超類的靜態方法getAll中。如何獲得一個子類?
不太清楚你想要做什麼,但簡單的答案是,你可能做不到。但是你可以添加一個'Item.getAll()'方法,它使用'Storable.getItem()'。 –
如果您希望您的加載方法呈多態行爲,則不能將其設爲靜態。 –