Java中object转map的方法是什么

avatar
作者
筋斗云
阅读量:0

Java中将Object转换为Map的方法有以下几种:

  1. 使用Java反射机制:利用Java反射机制获取Object的所有字段,然后将字段名作为key,字段值作为value,存储到Map中。
public static Map<String, Object> objectToMap(Object obj) throws IllegalAccessException {     Map<String, Object> map = new HashMap<>();     Class<?> clazz = obj.getClass();     for (Field field : clazz.getDeclaredFields()) {         field.setAccessible(true);         map.put(field.getName(), field.get(obj));     }     return map; } 
  1. 使用JavaBean的get方法:通过JavaBean的get方法获取Object的属性值,然后将属性名作为key,属性值作为value,存储到Map中。
public static Map<String, Object> objectToMap(Object obj) throws IntrospectionException, IllegalAccessException, InvocationTargetException {     Map<String, Object> map = new HashMap<>();     BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass());     PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();     for (PropertyDescriptor propertyDescriptor : propertyDescriptors) {         String key = propertyDescriptor.getName();         if (!key.equals("class")) {             Method getter = propertyDescriptor.getReadMethod();             Object value = getter.invoke(obj);             map.put(key, value);         }     }     return map; } 
  1. 使用第三方库,如Apache Commons BeanUtils或Spring的BeanUtils。这些库提供了更简便的方法来将Object转换为Map。

使用Apache Commons BeanUtils:

import org.apache.commons.beanutils.BeanUtils;  public static Map<String, Object> objectToMap(Object obj) throws IllegalAccessException, InvocationTargetException, NoSuchMethodException {     Map<String, Object> map = new HashMap<>();     map = BeanUtils.describe(obj);     map.remove("class");     return map; } 

使用Spring的BeanUtils:

import org.springframework.beans.BeanUtils;  public static Map<String, Object> objectToMap(Object obj) {     Map<String, Object> map = new HashMap<>();     BeanUtils.copyProperties(obj, map);     return map; } 

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!