转换工具类

工具类

复制代码
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 中国大陆许可协议进行许可。

posted @   zydjjcpdszylddpll  阅读(30)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起