在项目中会用到cn.hutool.core.bean.BeanUtil 这个类
BeanUtil.setFieldValue() 方法
但是在项目中 扫出sonar不让用这个jar包,
请问有什么类可以作为替换嘛

hutool包被sonar扫出不安全的,请问有什么包可以代替这个功能的嘛
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
6条回答 默认 最新
- pzzhao 2023-03-02 14:22关注
可以用 Apache 的BeanUtils org.apache.commons.beanutils.BeanUtils.setProperty(Object bean, String name, Object value);
或者你看下我根据hutool的源码简单改的这个,去掉了一些校验,你看看ok不。
public static void setFieldValue(Object obj, Field field, Object value) throws IllegalAccessException { Class<?> fieldType = field.getType(); if (null != value) { if (!fieldType.isAssignableFrom(value.getClass())) { Object targetValue = Convert.convert(fieldType, value); if (null != targetValue) { value = targetValue; } } } else { value = ClassUtil.getDefaultValue(fieldType); } if (!field.isAccessible()) { field.setAccessible(true); } field.set(obj instanceof Class ? null : obj, value); }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录