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


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


可以用 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);
}