Java反射setAccessible(true)安全检查不通过

Bean转Map

public static Map<String, Object> beanToMap(Object object) throws Exception {
    Map<String, Object> map = new HashMap<String, Object>();

    Class cls = object.getClass();
    Field[] fields = cls.getDeclaredFields();
    for (Field field : fields) {
        field.setAccessible(true);
        map.put(field.getName(), field.get(object));
    }
    return map;
}

上述代码使用了setAccessible(true)公司安全检查不通过

public static Map<String, Object> beanToMap(Object obj) {
    if (obj == null) {
        return null;
    }
    Map<String, Object> map = new HashMap<String, Object>();
    try {
        BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass());
        PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
        for (PropertyDescriptor property : propertyDescriptors) {
            String key = property.getName();
            // 过滤class属性
            if (!key.equals("class")) {
                // 得到property对应的getter方法
                Method getter = property.getReadMethod();
                Object value = getter.invoke(obj);
                map.put(key, value);
            }
        }
    } catch (Exception e) {
        logger.error("transBean2Map Error ", e);
    }
    return map;
}

使用这种方式,安全可靠

版权声明:
作者:Joe.Ye
链接:https://www.appblog.cn/index.php/2023/02/18/java-reflect-setaccessible-true-security-check-failed/
来源:APP全栈技术分享
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
海报
Java反射setAccessible(true)安全检查不通过
Bean转Map public static Map<String, Object> beanToMap(Object object) throws Exception { Map<String, Object> map = new HashMap<Str……
<<上一篇
下一篇>>
文章目录
关闭
目 录