2

我有一个问题,我需要遍历对象图并挑选出特定的属性值。我的原始解决方案缓存了需要应用的属性名称的链接列表,以便在对象图中从 A 点到达 B 点。然后我使用 apache commons PropertyUtils遍历调用 getProperty(Object bean, String name) 的链表,直到我到达 B 点。

我的问题是与可能为每个步骤设置 Method 对象相比,这将如何执行。propertyUtils 在引擎盖下做什么?它做了很多反思/繁重的工作吗?

4

1 回答 1

1

您不需要手动横切图形,因为新版本的 commons beanutils 也支持像 bean1.prop1.prop2 这样的表达式。

关于性能,如果您只执行一次每个表达式,propertyutils 实现就可以了,因为一定程度的反射是绝对必要的。

如果每个表达式都被调用多次,您可以更实际地提高性能。然后缓存要执行的最终方法可以改善结果,因为您只对表达式进行一次大反射。

如果您多次使用该表达式,您可以查看支持“编译表达式”的 OGNL。

于 2010-02-09T12:46:32.320 回答