久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Java中object轉map的方法是什么

222次閱讀
沒有評論

共計 1556 個字符,預計需要花費 4 分鐘才能閱讀完成。

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;
}

丸趣 TV 網 – 提供最優質的資源集合!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2024-01-29發表,共計1556字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 琼海市| 崇义县| 呼伦贝尔市| 罗平县| 上饶县| 隆德县| 苏尼特左旗| 临泉县| 乾安县| 荣成市| 秦皇岛市| 全南县| 巴彦县| 手机| 静宁县| 连州市| 庆元县| 焉耆| 沁阳市| 呼伦贝尔市| 凤冈县| 山东省| 延边| 红原县| 天津市| 曲阳县| 凤台县| 漳州市| 屏东市| 新巴尔虎右旗| 娄烦县| 固安县| 怀仁县| 乌兰浩特市| 金山区| 辽中县| 九龙城区| 元江| 大姚县| 吉安市| 乐东|