其他分享
首页 > 其他分享> > list对象转map(泛型的转换)

list对象转map(泛型的转换)

作者:互联网

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

标签:map,obj,String,aClass,list,declaredField,key,泛型
来源: https://blog.csdn.net/ningmeng666_c/article/details/121063395