使用 Spring EL 将值设置为 lambda

Using Spring EL to set value as 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 中进行最终削减 commit here