使用 Spring EL 将值设置为 lambda



我想通过Spring XML配置创建一个<map></map>属性。此Map应保存String类型的键和Predicate类型的值。我现在可以创建一些实现Predicate的指定类,但我想避免这个样板。

我想通过Spring 表达式语言传递一个 lambda 值。我读过关于FunctionalReferences Spring的文章,但我还不能理解它。

实际实施

<constructor-arg>
<map> 
<entry key="FormElement#viewtype" value="#{<!-- what to do here -->}"></entry>
</map>
</constructor-arg>

了解链接的文档,我尝试了这样的事情:

<constructor-arg>
<map> <!-- Map<String, Predicate<Object>> -->
<entry key="FormElement#viewtype" value="{|object|$object == 'fooView'}"></entry>
</map>
</constructor-arg>

错误<expression> expected, got '|'

我知道表达式语言需要一个表达式,但我真的很想在这里传递一个 lambda 作为值。

Javadoc 是不正确的;Lambdas没有在这里完成SpEL提交的最终剪辑。

最新更新