【发布时间】:2021-06-18 16:45:53
【问题描述】:
制作功能界面
@FunctionalInterface
public RulesFact {
Object getPropertyValue(String propertyName);
}
方法中的 lambda 实例。
public RulesFact rulesFactImpl(Object o) {
return propertyName->PropertyAccessorFactory.forBeanPropertyAccess(o).getPropertyValue(propertyName);
}
这种方法和上面的方法有区别吗?在上面的那个中,每次执行 lambda 时都会调用 PropertyAccessorFactory.forBeanPropertyAccess 方法吗?线程安全有区别吗?
public RulesFact rulesFactImpl(Object o) {
BeanWrapper accessor = PropertyAccessorFactory.forBeanPropertyAccess(o);
return propertyName->accessor.getPropertyValue(propertyName);
}
上述反射工具的Javadocs:Package org.springframework.beans
【问题讨论】: