Answers:
另一种选择是
if (myString?.trim()) {
...
}
boolean containsData = myString?.trim()
()
,如果需要将其包装在尚未将其设为布尔值的语句中,也可以将其包装。例如,def myVal = (myString?.trim())
def myVal = (myString?.trim())
话myVal
)是a String
或null
,将其用大括号括起来不会将其更改为布尔值。但是,如果您将其分配给布尔变量或(myString?.trim()) as boolean
在if
语句中使用或(如我的回答)使用它,则正如您所说的,它将使用字符串的Groovy Truth值(或null)
if ("false") println "that's true too"
您可以向String添加一个方法以使其更具语义:
String.metaClass.getNotBlank = { !delegate.allWhitespace }
您可以这样做:
groovy:000> foo = ''
===>
groovy:000> foo.notBlank
===> false
groovy:000> foo = 'foo'
===> foo
groovy:000> foo.notBlank
===> true