转换工具类
工具类
package com.cog.utils; import java.lang.reflect.Field; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 转换工具类 * @author jqs * @date 2021/12/29 9:32 */ public class ConvertUtil { /** * Object to String[] * * @param obj * @return */ public static String[] obj2Arr(Object obj) { Field[] fields = obj.getClass().getDeclaredFields(); String[] arr = new String[fields.length]; for (int i = 0, len = fields.length; i < len; i++) { try { // 获取原来的访问控制权限 boolean accessFlag = fields[i].isAccessible(); // 修改访问控制权限 fields[i].setAccessible(true); // 获取在对象f中属性fields[i]对应的对象中的变量 Object o = fields[i].get(obj); if (o != null) { arr[i] = o.toString(); } // 恢复访问控制权限 fields[i].setAccessible(accessFlag); } catch (Exception ex) { Log.error(ex.getMessage()); } } return arr; } /** * Object to Map * @param obj * @return */ public static Map<String, String> obj2Map(Object obj) { Map<String, String> map = new HashMap<String, String>(); // 获取f对象对应类中的所有属性域 Field[] fields = obj.getClass().getDeclaredFields(); for (int i = 0, len = fields.length; i < len; i++) { String varName = fields[i].getName(); //将key置为小写,默认为对象的属性 varName = varName.toLowerCase(); try { // 获取原来的访问控制权限 boolean accessFlag = fields[i].isAccessible(); // 修改访问控制权限 fields[i].setAccessible(true); // 获取在对象f中属性fields[i]对应的对象中的变量 Object o = fields[i].get(obj); if (o != null) { map.put(varName, o.toString()); } // 恢复访问控制权限 fields[i].setAccessible(accessFlag); } catch (IllegalArgumentException | IllegalAccessException e) { Log.error(e.getMessage()); } } return map; } /** * List to String[][] * @param list * @return String[][] */ public static String[][] list2Arr(List list) { if (list.isEmpty()) { Log.error("list为空"); return null; } String[][] resArr = new String[list.size()][]; int i = 0; for (Object o : list) { resArr[i] = ConvertUtil.obj2Arr(o); i++; } return resArr; } }
本文作者:zydjjcpdszylddpll
本文链接:https://www.cnblogs.com/jyfs/p/16037927.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步