我在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