Grails错误的表达评价

时间:2015-02-11 19:47:30

标签: grails groovy

我在服务类中编写了一个函数,我从控制器中评估传递的参数,但Grails返回错误的评估结果。

 def list(String q,String qval,String srt,String ord){
 log.debug("q==="+q)
 log.debug("qval==="+qval)
 log.debug("srt==="+srt)
 log.debug("order==="+ord)

所有这些调试语句都按预期打印null。现在

boolean qvalbool=qval?.trim()
log.debug("qvalbool===>>"+qvalbool) prints true!!!

!StringUtils.isEmpty(q) && !StringUtils.isEmpty(qval) returns true!!

这两个语句在返回true时应该返回false,这是怎么回事?任何想法?

我正在使用grails 2.4.2

1 个答案:

答案 0 :(得分:2)

Evan Wong的评论非常可能是您看到包含单词null的字符串。

当Groovy打印出值时,通常不清楚它们的类型是什么。

groovy:000> null
===> null
groovy:000> 'null'
===> null

同样在Groovy中,表达式null + ''计算为字符串'null'

这将是一种更改此参数值的简单方法,因此它包含字符串'null'。