Bean转化成map工具类

/** * 应用反射(其实工具类底层一样用的反射技术) * 手动写一个 Bean covert to Map */

public static void autoBeanToMap(Map map, Object clazz){

Method[] methods=clazz.getClass().getMethods();

try {

for(Method method: methods){

String methodName=method.getName();//反射获取属性与属性值的方法很多,以下是其一;也可以直接获得属性,不过获取的时候需要用过设置属性私有可见

         if (methodName.contains("get")){

//invoke 执行get方法获取属性值

                Object value=method.invoke(clazz);

//根据setXXXX 通过以下算法取得属性名称

                String key = methodName.substring(methodName.indexOf("get") +3);

Object temp = key.substring(0,1).toString().toLowerCase();

key = key.substring(1);

//最终得到属性名称

                key = temp + key;

map.put(key,value);

}

}

}catch (Exception e){

log.error("错误信息:",e);

}

log.info(JSONObject.toJSONString(map));

}

public static void main(String[] args) {

try {

//beanToMap();

        User user=new User();

Map keyValues=new HashMap<>();

user.setPassword("password");

user.setComments("test method!");

user.setUserName("wang shisheng");

user.setCreateTime("2018-12-12");

autoBeanToMap(keyValues,user);

}catch (Exception e) {

e.printStackTrace();

}

}


jar:

    commons-beanutils

    commons-beanutils

    1.9.3

你可能感兴趣的:(Bean转化成map工具类)