在Business layer 和 web layer 需要经常进行Bean的转换.
我写了个比较common的方法, 可以批量转换Bean.
前提:
1. 已知目标Bean的Class.
2. 目标bean 有一个参数是源Bean的构造函数.
/**
*
* @Function Transfer Source Bean to Dest Bean
* @param src: SourceBean's List. wrapedClass: Dest Bean's Class
* @return List : DestBean's List
* @exception
*
* @author Fred 2007-11-13
*/
public static List wrapToView(List src, Class wrapedClass) {
try {
List dest = new LinkedList();
if (src.size() == 0)
return dest;
Constructor c = wrapedClass.getConstructor(new Class[] { src.get(0).getClass() });
for (int i = 0; i < src.size(); i++) {
Object o = c.newInstance(new Object[] { src.get(i) });
dest.add(o);
}
return dest;
} catch (SecurityException e) {
e.printStackTrace();
return null;
} catch (NoSuchMethodException e) {
e.printStackTrace();
return null;
} catch (IllegalArgumentException e) {
e.printStackTrace();
return null;
} catch (InstantiationException e) {
e.printStackTrace();
return null;
} catch (IllegalAccessException e) {
e.printStackTrace();
return null;
} catch (InvocationTargetException e) {
e.printStackTrace();
return null;
}
}