添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
import org.apache.commons.beanutils.PropertyUtils; import org.apache.commons.collections4.MapUtils; import org.apache.commons.lang3.math.NumberUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import java.lang.reflect.Field; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; * Map 与 实体类转换工具类 * by CHENYB date 2019-05-29 * @version 1.0 public class MapUtil { protected static Log log = LogFactory.getLog(MapUtil.class); * 利用反射将map集合封装成bean对象 * by CHENYB date 2019-05-29 * @param map * @param clazz * @param * @return * @throws Exception public static T mapToBean(Map map, Class clazz) throws Exception { Object obj = clazz.newInstance(); if (map != null && !map.isEmpty() && map.size() > 0) { for (Entry entry : map.entrySet()) { String propertyName = entry.getKey(); // 属性名 Object value = entry.getValue(); // 属性值 if (null == value||StringUtils.isBlank( String.valueOf( value ))) continue; String setMethodName = "set" + propertyName.substring(0, 1).toUpperCase() + propertyName.substring(1); Field field = getClassField(clazz, propertyName); //获取和map的key匹配的属性名称 if (field == null){ continue; Class fieldTypeClass = field.getType(); value = convertValType(value, fieldTypeClass); try { if (StringUtils.isNotBlank( setMethodName )&& setMethodName.toUpperCase().contains( "SERIALVERSIONUID" )) continue; clazz.getMethod(setMethodName, field.getType()).invoke(obj, value); } catch (NoSuchMethodException e) { e.printStackTrace(); return (T) obj; * 根据给定对象类匹配对象中的特定字段 * @param clazz * @param fieldName * @return private static Field getClassField(Class clazz, String fieldName) { if (Object.class.getName().equals(clazz.getName())) { return null; Field[] declaredFields = clazz.getDeclaredFields(); for (Field field : declaredFields) { if (field.getName().equals(fieldName)) { return field; Class superClass = clazz.getSuperclass(); //如果该类还有父类,将父类对象中的字段也取出 if (superClass != null) { //递归获取 return getClassField(superClass, fieldName); return null; * 将map的value值转为实体类中字段类型匹配的方法 * @param value * @param fieldTypeClass * @return private static Object convertValType(Object value, Class fieldTypeClass) { Object retVal = null; if (Long.class.getName().equals(fieldTypeClass.getName()) || long.class.getName().equals(fieldTypeClass.getName())) { retVal = Long.parseLong(value.toString()); } else if (Integer.class.getName().equals(fieldTypeClass.getName()) || int.class.getName().equals(fieldTypeClass.getName())) { retVal = Integer.parseInt(value.toString()); } else if (Float.class.getName().equals(fieldTypeClass.getName()) || float.class.getName().equals(fieldTypeClass.getName())) { retVal = Float.parseFloat(value.toString()); } else if (Double.class.getName().equals(fieldTypeClass.getName()) || double.class.getName().equals(fieldTypeClass.getName())) { retVal = Double.parseDouble(value.toString()); } else { retVal = value; return retVal; * 利用反射将map集合封装成bean对象 * by CHENYB date 2019-05-29 * 对象转map * @param obj * @return public static Map objToMap(Object obj) { Map map = new HashMap(); Field[] fields = obj.getClass().getDeclaredFields(); // 获取f对象对应类中的所有属性域 for (int i = 0, len = fields.length; i < len; i++) { String varName = fields[i].getName(); //varName = varName.toLowerCase(); // 将key置为小写,默认为对象的属性 try { boolean accessFlag = fields[i].isAccessible(); // 获取原来的访问控制权限 fields[i].setAccessible(true); // 修改访问控制权限 Object o = fields[i].get(obj); // 获取在对象f中属性fields[i]对应的对象中的变量 if (o != null){ map.put(varName, o.toString()); fields[i].setAccessible(accessFlag); // 恢复访问控制权限 } catch (IllegalArgumentException ex) { ex.printStackTrace(); } catch (IllegalAccessException ex) { ex.printStackTrace(); return map; * map Value String 转 Objcet * @param map * @return public static HashMap mapStringToHashMapObj(Map map){ HashMap resultMap = new HashMap<>(); for (Entry entry : map.entrySet()) { resultMap.put( entry.getKey(),entry.getValue()); return resultMap; * map Value Objcet 转 String * @param map * @return public static HashMap mapObjToHashMapStr(Map map){ HashMap resultMap = new HashMap<>(); for (Entry entry : map.entrySet()) { resultMap.put( entry.getKey(),entry.getValue().toString()); return resultMap; * @param clazz * @return * @author created by figo public static Map getDeclaredFieldsMap(Class clazz) { Map filesMap = new HashMap<>(); if (clazz != null) { Field[] fields = clazz.getDeclaredFields(); for (Field f : fields) { filesMap.put(f.getName(), f); return filesMap; * @param paramMap * @param obj * @author created by figo public static void bindingPropertyValue(Map paramMap, Object obj) { if (MapUtils.isEmpty(paramMap) || obj == null) { return; Map fieldsMap = getDeclaredFieldsMap(obj.getClass()); for (Entry entry : paramMap.entrySet()) { if (fieldsMap.containsKey(entry.getKey())) { Field field = fieldsMap.get(entry.getKey()); Object value = entry.getValue(); if (field.getType().getName().equals("java.lang.Integer")) { value = NumberUtils.toInt(entry.getValue()); } else if (field.getType().getName().equals("java.lang.Long")) { value = NumberUtils.toLong(entry.getValue()); } else if (field.getType().getName().equals("java.util.Date")) { value = DateStringCalcUtils.stringToDateByGeneralYMDHMS(entry.getValue()); try { PropertyUtils.setProperty(obj, entry.getKey(), value); } catch (Exception e) { e.printStackTrace(); log.error("bindingPropertyValue error! msg is:" + LogUtils.getErrorMsg(e)); public static void bindingPropertyValueFromObject(Map paramMap, Object obj) { if (MapUtils.isEmpty(paramMap) || obj == null) { return; Map fieldsMap = getDeclaredFieldsMap(obj.getClass()); for (Entry entry : paramMap.entrySet()) { if (fieldsMap.containsKey(entry.getKey())) { Field field = fieldsMap.get(entry.getKey()); Object value = entry.getValue(); if (field.getType().getName().equals("java.lang.Integer")) { value = NumberUtils.toInt(entry.getValue().toString()); } else if (field.getType().getName().equals("java.lang.Long")) { value = NumberUtils.toLong(entry.getValue().toString()); } else if (field.getType().getName().equals("java.util.Date")) { value = DateStringCalcUtils.stringToDateByGeneralYMDHMS(entry.getValue().toString()); try { PropertyUtils.setProperty(obj, entry.getKey(), value); } catch (Exception e) { log.error("bindingPropertyValue error! msg is:" + LogUtils.getErrorMsg(e)); package com.utils;import org.apache.commons.beanutils.PropertyUtils;import org.apache.commons.collections4.MapUtils;import org.apache.commons.lang3.math.NumberUtils;import org.apache.commons.lo... import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.eco.base. util .String Util ; import com.fasterxml.jackson.databind.Object Map per; import java.beans.BeanInfo; import java.beans.In. import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import org. ap ache.commons.bean utils .Bean Utils ; import org. ap ache.commons.lang3.String Utils ; import java. util .Hash Map ; import...
目录参考文献代码和权重下载准备工作data中新建几个文件夹makeTxt.pyvoc_label.py文件修改数据集方面的yaml文件修改网络参数方面的yaml文件修改train.py中的一些参数修改训练测试新建data_test新建几个py文件cfg_ mAP .py:detect_eval_class_txt.py :compute_ mAP .py: mAP _line.py : utils _ mAP .py:yolov5_eval.py : 本人前段时间用yolov5进行目标检测研究,记录一下流程方便查看,也希望能帮
import com.alibaba.fastjson.JSONObject; // 假设list有值 List< Map <String,Object>> list = new ArrayList<>(); // Student对象为测试对象 // 按照如下方式可以实现List& private static Map <String, Object> objTo Map (Object obj) { Map <String, Object> map = new Hash Map <String, Object>(); Field[] fields = obj.getClass().getDeclare.
注 : 2019-06-16日 增加第六节 map 与实体互转 工具类 ,直接看第6节; 1.调用这个方法Bean Map Utils . map ToBean(),实现 map 集合转 实体类 对象; 注意:这个方法 转换 时我这边老是报类型 转换 错误,引用这段代码没有报错的小伙伴可继续使用,此方法扩展性好,报错的小伙伴请看最下面的一个 map 实体类 对象方法; //1.通过 map 构造permiss...
package com.kq.cloud.common. util ; import org. ap ache.commons.collections. map .Linked Map ; import java.beans.BeanIn... Java报错笔记-org.springframework.data.redis.serializer.SerializationException: Could not read JSON 17696