java - 使用 Spring EL 将值设置为 lambda

标签 java xml lambda predicate spring-el

我想创建一个<map></map>属性通过 Spring XML 配置。这个Map应该持有 String 类型的 key 和类型为 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 .

关于java - 使用 Spring EL 将值设置为 lambda,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50797608/

相关文章:

java - GWT RPC 如何在其有效负载中编码 java.lang.Long 值?

java - 从 JDialog 返回时出现意外结果

java - Java 序列化、JSON、JAXB 之间的区别?

java - JDOM 从根中删除元素

java - Java 8 中流和闭包的成本

r - R 中是否有更好的、干净的一次性函数方法?

c# - 使用 Lambda 获取属性名称列表

java - 重新创建 ServerSocket 后我的 GUI 卡住

java - 不兼容的类型 : <anonymous TextWatcher> cannot be converted to Context

xml - XSLT:将 namespace 设置为第一个属性