91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

Java中object轉map的方法是什么

小億
472
2024-01-24 16:31:58
欄目: 編程語言

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

0
瓮安县| 龙州县| 兰坪| 阳谷县| 平谷区| 延津县| 延寿县| 高州市| 东乡族自治县| 横山县| 武威市| 石嘴山市| 剑阁县| 获嘉县| 凌海市| 渭源县| 阳谷县| 尼木县| 定远县| 大港区| 马鞍山市| 保山市| 吉林市| 方城县| 漠河县| 昌邑市| 阜新| 维西| 嘉峪关市| 文水县| 扬州市| 柘城县| 武夷山市| 湘阴县| 定南县| 南宁市| 莎车县| 当涂县| 赤峰市| 西和县| 清流县|