Я написал функцию в моем классе обслуживания, где я оцениваю переданные параметры от контроллера, но Grails возвращает неверные результаты оценки.Неправильная оценка 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)
все эти операторы отладки печатают нуль, как ожидалось. Теперь
boolean qvalbool=qval?.trim()
log.debug("qvalbool===>>"+qvalbool) prints true!!!
!StringUtils.isEmpty(q) && !StringUtils.isEmpty(qval) returns true!!
оба утверждения должны возвращать false, пока они возвращают true, что происходит с этим? есть идеи?
Я использую Grails 2.4.2
Возможно, ввод «null» как строка? поэтому вы видите нуль, когда вы их печатаете? – evanwong
Входной сигнал равен null, но результат условия должен быть ложным, пока он показывает true –
Запустите отладчик и проверьте, что такое точное значение. Как упоминалось в @evanwong, вы можете получить «null», а не «null», поэтому другие условия оцениваются как «истинные». Если вы хотите напечатать точный тип данных, попробуйте 'log.debug (q? .dump())' и посмотрите, получаете ли вы 'null' или' ' –