大家好,又见面了,我是你们的朋友全栈君。
根据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;
}
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/145561.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...