62,621
社区成员
发帖
与我相关
我的任务
分享
public interface Convertor{
public Map<String,Object> convert(Map<String,Object> mapA,Map<String,Object> mapB);//如果是参数的话这里就是确定的map
}
public class ConvertorImpl implements Convertor{
private Map<String,String> convertParams;
public ConvertorImpl(){
//读取properties中要转换的信息,存到convertParams,如果无需转换的可以存原参数名
}
public Map<String,Object> convert(Map<String,Object> mapA,Map<String,Object> mapB){
for(Map.Entry<String,Object> entry:mapA.entrySet()){
//这里直接把A系统的参数都填入B系统中,需要转换的自然就转换了
mapB.put(convertParams.get(entry.getKey()),entry.getValue());
}
}
}
//一个工厂类负责从properties中获得Convertor的实现实例
public class ConvertorFactory{
public static Convertor newInstance(){
//读取properties中设置的转换器实现类以后如果用不同的实现就可以在properties中设置无需改动代码了
String classPath=properties.getProperty("convertorClass");
Class.forName(classPath).newInstance();
}
}
//properties文件可以这样写
//有多少个就填多少个
a1=b1
a2=b2
//用于设置接口实现类以后可以更换
convertorClass=ConvertorImpl
public <T, E> T convert(E e, Class<T> t) {
T to = t.newInstance();
ReadXML<T,E> xml = new ReadXML<T, E>(e.getClass(), t);
return xml.toBean(e);
}
E为传入的对象,T是要返回的对象