```java
package org.apache.rocketmq.console.util;
import com.google.common.base.Throwables;
import com.google.common.collect.Lists;
import org.apache.commons.collections.CollectionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.*;
/**
* Created by kang.zou
* on 2021/9/18
*/
public class ListToMapUtil {
private static final Logger logger = LoggerFactory.getLogger(ListToMapUtil.class);
private static final String EMPTYSTR = "";
// 适用于KEY为get属性方法,VALUE为get属性方法
public static <T> Map<String, String> toMap(List<T> convertList, String getNameOfKey, String getNameOfValue) {
Map<String, String> resultMap = new HashMap<>();
if (CollectionUtils.isEmpty(convertList)) {
return resultMap;
}
for (T obj : convertList) {
if(obj == null) continue;
try{
Object key = obj.getClass().getMethod(getNameOfKey).invoke(obj);
Object value = obj.getClass().getMethod(getNameOfValue).invoke(obj);
resultMap.put(key == null ? null : String.valueOf(key), value == null ? null : String.valueOf(value));
}catch (Exception e) {
logger.error("ListToMapUtil toMap1 method is reflecting, invoke key occur error:{}", Throwables.getStackTraceAsString(e));
}
}
return resultMap;
}
// 适用于KEY为get属性方法,VALUE为get属性方法的集合, 并且KEY,
【java】 List集合转MAP工具类封装
最新推荐文章于 2024-05-01 08:36:06 发布