轉換工具類
阿新 • • 發佈:2022-03-22
工具類
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 */ publicstatic 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; } }