您的位置:首页 > 编程语言 > Java开发

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());
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: