我在Java中的方法從數據庫解析結果泛型集合
ArrayList<Object> nodeList = new ArrayList<Object>();
public void parseResults() throws SQLException, ListEmptyException, NoRecognisableCharacterException{
// parses records from a query. ONLY ONE COLUMN
while(getResultSet().next()){
for(int i = 1; i <= getNumberOfColumns(); i++){
switch(getColumnType()){
//According to the datatype, I call the proper method get[DataType] of resultSet
case 0:throw new ListEmptyException();
case 4:nodeList.add(getResultSet().getInt(i));break;
case 12:nodeList.add(getResultSet().getString(i).trim());break;
default:throw new NoRecognisableCharacterException();
}
}
}
}
我被告知不要使用ArrayList<Object>
存儲不同類型的數據分析一些數據。我必須創建一個實體來解析相應的數據類型。我不想爲每種數據類型重載方法(有很多),既不創建單獨的類,只改變一個方法get[DataType]
,也不讓switch
在for
循環內循環,也不根據數據類型具有多個NodeList實例。有沒有辦法讓這種方法適用於每種數據類型?仿製藥應該在那種情況下做?先謝謝你。
我不確定我是否理解你的想法,但處理/解析來自數據庫的不同數據的正確方法是對從不同表格加載的不同數據使用單獨的類。這裏的過度統一失敗了目的,並沒有幫助,也沒有使你的代碼清潔。 – rossa