Используя Spring EL, чтобы установить значение как лямбда - PullRequest
0 голосов
/ 11 июня 2018

Я хочу создать свойство <map></map> через конфигурацию Spring XML.Этот Map должен содержать ключ типа String и значение типа Predicate.Теперь я могу создать некоторые указанные классы, реализующие Predicate, но я хочу избежать этого шаблона.

Я бы хотел передать лямбда-значение через Spring Expression Language .Я читал о 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 '|'

Я понимаю, что выражение язык ожидает выражения, но я действительно хотел бы передать лямбду в качестве значения здесь.

1 Ответ

0 голосов
/ 11 июня 2018

что Javadoc неверен;Lambdas не сделал окончательный удар в SpEL коммит здесь .

...