java list 设置size_java – Spring表达式语言 – List上的Size属性

在Spring中使用@Cacheable注解时遇到SpelEvaluationException,原因是在List上错误地尝试访问'size'属性。解决方法是正确调用List的size()方法。修改后的代码应为:@Cacheable(value="cache", unless="#result.size()>0") public List getResult();
摘要由CSDN通过智能技术生成

我试图使用Spring EL在List上使用size属性,这是抛出无法找到大小的异常.

@Cacheable(value = "cache", unless = "#result.size > 0")

public List getResult();

例外:

org.springframework.expression.spel.SpelEvaluationException: EL1008E:(pos 8): Field or property 'size' cannot be found on object of type 'java.util.ArrayList'

at org.springframework.expression.spel.ast.PropertyOrFieldReference.readProperty(PropertyOrFieldReference.java:217)

at org.springframework.expression.spel.ast.PropertyOrFieldReference.getValueInternal(PropertyOrFieldReference.java:85)

at org.springframework.expression.spel.ast.PropertyOrFieldReference.access$000(PropertyOrFieldReference.java:43)

at org.springframework.expression.spel.ast.PropertyOrFieldReference$AccessorLValue.getValue(PropertyOrFieldReference.java:346)

at org.springframework.expression.spel.ast.CompoundExpression.getValueInternal(CompoundExpression.java:84)

解决方法:

size解析为List#getSize(),它不存在.尝试使用size(),如下所示:

@Cacheable(value = "cache", unless = "#result.size() > 0")

public List getResult();

标签:java,spring,expression

来源: https://codeday.me/bug/20190725/1529316.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值