大家好,又见面了,我是你们的朋友全栈君。
package com.hwqh.hwqhuser.util;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;
/**
* Map转换工具类
*/
public class MapToolsUtil {
public static void main(String[] args) throws Exception{
/* User user=new User();
user.setId(1L);
Map<String, Object> stringObjectMap = javaBean2Map(user);
System.out.println(stringObjectMap);
*/
/* Map map = new HashMap();
map.put("id",1L);
map.put("nickname","你好");
User user = (User) mapJavaBean(User.class, map);
System.out.println(user.getNickname()+user.getId());*/
}
/**
* 将Object对象里面的属性和值转化成Map对象
*
* @return
* @throws IllegalAccessException
*/
public static Map<String, Object> javaBeanMap(Object javaBean) {
Map<String, Object> map = new HashMap<>();
Method[] methods = javaBean.getClass().getMethods(); // 获取所有方法
for (Method method : methods) {
if (method.getName().startsWith("get")) {
String field = method.getName(); // 拼接属性名
field = field.substring(field.indexOf("get") + 3);
field = field.toLowerCase().charAt(0) + field.substring(1);
Object value = null; // 执行方法
try {
value = method.invoke(javaBean, (Object[]) null);
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
map.put(field, value);
}
}
return map;
}
/**
* Map转对象的方法
*/
/* public static Object mapJavaBean(Class<?> clazz, Map<String, Object> map) {
Object javabean = null; // 构建对象
try {
javabean = clazz.newInstance();
Method[] methods = clazz.getMethods(); // 获取所有方法
for (Method method : methods) {
if (method.getName().startsWith("set")) {
String field = method.getName(); // 截取属性名
field = field.substring(field.indexOf("set") + 3);
field = field.toLowerCase().charAt(0) + field.substring(1);
if (map.containsKey(field)) {
method.invoke(javabean, map.get(field));
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
return javabean;
} */
/**
* Map转对象的方法
*/
public static Object mapJavaBean(Class<?> clazz, Map<String, String> map) {
Object javabean = null; // 构建对象
try {
javabean = clazz.newInstance();
Method[] methods = clazz.getMethods(); // 获取所有方法
for (Method method : methods) {
if (method.getName().startsWith("set")) {
String field = method.getName(); // 截取属性名
field = field.substring(field.indexOf("set") + 3);
field = field.toLowerCase().charAt(0) + field.substring(1);
if (map.containsKey(field)) {
method.invoke(javabean, map.get(field));
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
return javabean;
}
}
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/140821.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...