private ArrayList getDataMaps(List list)
{ ArrayList retList = new ArrayList();
if (list != null)
{
int len = list.size();
for (int i = 0; i < len; i++)
{
DataMap map = new CountryInfoMap((CountryForm) list.get(i));
retList.add(map);
}
}
return retList;
}CountryInfoMap实现了DataMap接口,CountryForm继承自Struts的ActionForm,可否将DataMap,ActionForm 变为参数来将此方法封装。调用时只需要传入DataMap和ActionForm的子类以达到目的。
{ ArrayList retList = new ArrayList();
if (list != null)
{
int len = list.size();
for (int i = 0; i < len; i++)
{
DataMap map = new CountryInfoMap((CountryForm) list.get(i));
retList.add(map);
}
}
return retList;
}CountryInfoMap实现了DataMap接口,CountryForm继承自Struts的ActionForm,可否将DataMap,ActionForm 变为参数来将此方法封装。调用时只需要传入DataMap和ActionForm的子类以达到目的。
public List getDataMaps(List formList) {
if(formList!=null && !formList.isEmpty()) {
List dataMaps = new ArrayList(formList.size());
for(int i=0, len=dataMaps.size(); i<len; i++) {
DataMap dm = convertToDataMap(dataMaps.get(i));
if(dm!=null){
dataMaps.add(dm);
}else{
//throw new Exception("a error message");
}
}
return dataMaps;
}
return new ArrayList(0);
}
// 由子类实现此方法
protected abstract DataMap convertToDataMap(Object formObject);
}
public abstract ClassName {
....;
}
public abstract class ClassName {
....;
}
//package ;public class ClassName {
public List getDataMaps(List formList) {
if(formList!=null && !formList.isEmpty()) {
List dataMaps = new ArrayList(formList.size());
for(int i=0, len=dataMaps.size(); i<len; i++) {
CountryForm cf = (CountryForm) dataMaps.get(i);
DataMap dm = new CountryDataMap();//尽量减少CountryDataMap和CountryForm类的耦合
setValueToDataMap(dm, cf);//设置值域
dataMaps.add(dm);
}
return dataMaps;
}
return new ArrayList(0);
}
protected void setValueToDataMap(DataMap dm, CountryForm cf) {
...;
}
}