lambda代替反射执行

This commit is contained in:
Looly 2023-03-05 17:22:33 +08:00
parent 01dc2450a0
commit 9784e8e2b4

View File

@ -3,6 +3,7 @@ package cn.hutool.core.bean;
import cn.hutool.core.annotation.AnnotationUtil;
import cn.hutool.core.annotation.PropIgnore;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.lang.func.LambdaUtil;
import cn.hutool.core.reflect.FieldUtil;
import cn.hutool.core.reflect.MethodUtil;
import cn.hutool.core.reflect.ModifierUtil;
@ -153,7 +154,8 @@ public class PropDesc {
*/
public Object getValue(final Object bean) {
if (null != this.getter) {
return MethodUtil.invoke(bean, this.getter);
//return MethodUtil.invoke(bean, this.getter);
return LambdaUtil.buildGetter(this.getter).apply(bean);
} else if (ModifierUtil.isPublic(this.field)) {
return FieldUtil.getFieldValue(bean, this.field);
}
@ -224,7 +226,8 @@ public class PropDesc {
*/
public PropDesc setValue(final Object bean, final Object value) {
if (null != this.setter) {
MethodUtil.invoke(bean, this.setter, value);
//MethodUtil.invoke(bean, this.setter, value);
LambdaUtil.buildSetter(this.setter).accept(bean, value);
} else if (ModifierUtil.isPublic(this.field)) {
FieldUtil.setFieldValue(bean, this.field, value);
}