我試圖創建的環境的虛擬模板方法如下:使用Java創建
我有一個包含接收由查詢數據庫填補了ResultSet
靜態模板方法的基類,並返回一個正確結果的列表。
我有一些類,從上面引用的一個派生,表示從數據庫中的每個表,並且他們都有一個構造函數接收ResultSet
並構建該對象。
我寫的代碼是:
public class TableBase
{
public static <T extends TableBase> List<T> getResults(ResultSet p_Rs) throws SQLException, InstantiationException, IllegalAccessException
{
List<T> v_Table = new ArrayList<T>();
T v_TB = null;
while(p_Rs.next())
v_Table.add(new T(p_Rs));
return v_Table;
}
}
我得到的錯誤是:Cannot instantiate the type T
。
我很清楚,編譯器需要「知道」所有子類將實現接收變量的構造函數,但我不能創建「抽象構造函數」。
有沒有人有如何解決這個問題的線索?
謝謝大家提前。
你必須通過一些功能的對象,知道'T'。也許某種工廠對象 –