利用java反射实现Java Bean 类型转换
2007-11-13 11:53
477 查看
在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;
}
}
我写了个比较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;
}
}
相关文章推荐
- 利用java反射,将map转换为指定的Object类型
- 利用Java的反射机制实现Bean实体与Map自动转换的工具类
- 学习笔记 JAVA 将 object 转换成为 json 串 利用反射实现
- 利用Java反射实现普通对象到JSONObject的转换
- 黑马程序员--Java基础加强--14.利用反射操作泛型III【解析关于泛型类型的细节信息的获取方法】【Method与泛型相关的方法】【个人总结】
- 利用java反射机制 读取配置文件 实现动态类加载以及动态类型转换
- 黑马程序员--Java基础加强--15.利用反射操作泛型IV【通过反射Method解析泛型方法思路】【通过Method对四种Type子接口类型进行解剖】【使用递归对任意复合泛型类型进行彻底解剖】【个人
- 黑马程序员--Java基础加强--17.利用反射操作泛型VI【泛型类型变量的语义】【GenericDeclaration接口】【泛型接口TypeVariable】【通过Class反射解析泛型类】
- VA利用反射进行数据库的读取免数据类型转换
- 利用java的反射实现IOC
- Java利用反射来获取一个方法的 范型化参数 Vector<Integer>的类型
- 利用泛型和反射对Java对象集合转换成Json的工具类
- java 利用泛性和反射机制实现collections.sort排序模板
- 利用java反射机制 读取配置文件 实现动态类加载以及动态类型转换
- 利用Java反射根据属性名获取对象值和类型代码
- 利用java反射实现两个具有相同属性bean赋值
- 【转】NET中反射实现 可空类型 与基础类型的转换 以及获取指定属性的大小问题
- Java 遍历利用entry遍历Map时类型转换的问题
- Java仿Spring框架IOC控制反转利用反射简单实现(源码)
- 利用JAXB实现java对象和xml的相互转换