Java -- 通过反射处理bean对象
2015-12-09 09:53
399 查看
代码如下:
package com.redhorse.util; import java.lang.reflect.Field; import java.lang.reflect.Method; import org.apache.log4j.Logger; import com.redhorse.bean.huifu.HuiFuUserManageBean; import net.sf.json.JSONObject; public class HuiFuUtil { private final static Logger logger = Logger.getLogger(HuiFuUtil.class); /** * 实体BEAN转换成MAP * @author: Gao Peng * @date: 2015年12月9日 上午9:19:48 * @param: @param model * @return: void */ public static void getBeanToMap(Object model) { JSONObject params = new JSONObject(); Class<?> cls = model.getClass(); Field[] fields = cls.getDeclaredFields(); String name; Object value; for (Field field : fields) { name = getBeanName(field, cls, model); value = getBeanValue(field, cls, model); if (value == null) { continue; } params.put(name, value); } logger.info("params = " + params.toString()); } /** * * @author: Gao Peng * @date: 2015年12月9日 上午9:19:17 * @param: @param field * @param: @param cls * @param: @param model * @param: @return * @return: String */ private static String getBeanName(Field field, Class<?> cls, Object model) { char[] buffer = field.getName().toCharArray(); buffer[0] = Character.toUpperCase(buffer[0]); String name = new String(buffer); logger.info("name = " + name); return name; } /** * * @author: Gao Peng * @date: 2015年12月9日 上午9:19:20 * @param: @param field * @param: @param cls * @param: @param model * @param: @return * @return: Object */ private static Object getBeanValue(Field field, Class<?> cls, Object model) { char[] buffer = field.getName().toCharArray(); buffer[0] = Character.toUpperCase(buffer[0]); String mothodName = "get" + new String(buffer); try { Method method = cls.getDeclaredMethod(mothodName); Object value = method.invoke(model); logger.info("value = " + value); return value; } catch (Exception e) { e.printStackTrace(); } return null; } public static void main(String[] args) { // getBeanToMap(new HuiFuUserManageBean()); } }
相关文章推荐
- Spring AOP 实现原理
- Java 日志记录工具
- Java通过调用FFMPEG获取视频时长
- Java图像拼接处理
- myeclipse 性能优化
- Java异常情况分析
- Eclipse Debug不为人知的秘密
- Spring-jdbc详解及案例<四>
- java 调用SqlServer分页存储过程的,返回多个结果集
- java序列化Serializable
- 浅析Java web程序之客户端和服务器端交互原理
- 用JAVA判断一个URL是否有效
- Spring Bean 单例模式
- Java内存溢出的详细解决方案
- 诊断Java中的内存泄露
- OGNL, JSTL, STRUTS2标签中符号#,$,%的用法示例
- java序列化Serializable
- 用JAVA判断一个URL是否有效
- Java语言的12大特色
- Java中产生随机数的两个方法