zl程序教程

您现在的位置是:首页 >  后端

当前栏目

list对象转map[通俗易懂]

ListMap对象 通俗易懂
2023-06-13 09:11:32 时间

大家好,又见面了,我是你们的朋友全栈君。

根据list对象中的某个属性转换成map

 /**
     * 将对象中的某个属性作为map的key 将对象本身作为map的value构成成一个map
     *
     * @param fieldToKey 必须是obj的field  我们把field的getValue作为map的key
     * @author mountain 2019-01-07 17:21
     */

    public static <T, E> Map<T, E> listToMap(List<E> listObj, String fieldToKey) {
        Map<T, E> map = new HashMap();
        for (E obj : listObj) {
            try {
                String name = obj.getClass().getName();
                Class.forName(name).newInstance();
                Class aClass = obj.getClass();
                Field declaredField;
                declaredField = aClass.getDeclaredField(fieldToKey);
                declaredField.setAccessible(true);
                String methodName = parGetName(declaredField.getName());
                Method method = aClass.getMethod(methodName);
                T fieldVal = (T) method.invoke(obj, new Object[] {});
                map.put(fieldVal, obj);
            } catch (Exception e) {
                logger.error("将对象中的某个属性作为map的key 将对象本身作为map的value构成成一个map出现异常", e);
            }
        }
        return map;
    }

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/145561.html原文链接:https://javaforall.cn