反射的影响

前言

 用反射可以说很牛掰也很有范,框架底的层也用的很多,但是我最近用的时候,很慢,经过排查问题定位到反射,查官网,发现,反射在千条一下,性能     影响可以忽略不计,大于这个阈值就极其慢,所以说所有的技术都有一定的使用范围,选型很重要,谨慎评估,慎重选择,导出Excel10万加,动态去表头key,根据key 取值,把javaBean 转换为map

代码分析

package com.XXX.util;

import java.beans.BeanInfo;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;

/**
 * @Author windwardbird
 * @time 2020/8/19 20:12
 * @describeOfFunction:
 */
public class BeanToMap {
    public static Map<String,Object> javaBeanToMap(Object bean) throws Exception{
        Map<String,Object> map = new HashMap<>();
        //获取JavaBean的描述器
        if(null==bean) bean ="";  // 防空处理
        BeanInfo beanInfo = Introspector.getBeanInfo(bean.getClass(),Object.class);
        //获取属性描述器
        PropertyDescriptor[] pds = beanInfo.getPropertyDescriptors();
        //对属性迭代
        for (PropertyDescriptor property : pds) {
            String propertyName = property.getName();//属性名称
            Method m = property.getReadMethod(); //属性值,用getter方法获取
            Object properValue = m.invoke(bean);//用对象执行getter方法获得属性值
            map.put(propertyName, properValue); //把属性名-属性值 存到Map中
        }
        return map;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值