我想在我的bean中注入一个番石榴Predicate,equalto内应该是not。
我试过了:
<bean id="bla" class="something">
<property name="indexPredicate" value="#{T(com.google.common.base.Predicates).not(T(com.google.common.base.Predicates).equalTo(145028) )}" />
</bean>
但它抛出异常:
引起:org.springframework.expression.spel.SpelParseException: EL1049E:(pos 36):'。'之后的意外数据:'not(!)'
Spring 3.0.5,Guava 11.0.2
我怎样才能让它发挥作用?
答案 0 :(得分:4)
显然,SpEL认为你的意思是the Operator not
。但是,我没有看到任何方法来逃避或消除文档中的歧义。也许您需要为此提交功能请求。
或者,这是3.0之前的工厂方法方法。我知道,这太可怕了,但在你的情况下,这可能是一个可接受的解决方法:
<property name="indexPredicate">
<bean class="com.google.common.base.Predicates" factory-method="not">
<constructor-arg>
<bean class="com.google.common.base.Predicates"
factory-method="equalTo">
<constructor-arg>
<bean class="java.lang.Integer" factory-method="valueOf">
<constructor-arg value="145028" />
</bean>
</constructor-arg>
</bean>
</constructor-arg>
</bean>
</property>