【发布时间】:2017-01-18 23:34:19
【问题描述】:
我正在尝试使用三元运算符从我的代码中消除大量的 IF/ELSE 语句。
//Checks to see if person exists //if not then add //else print
println doesPersonExist(personName) ? addPerson(personName) : 'No such person'
问题是如果执行了 addPerson(personName) 方法,那么由于 println 会打印 NULL。从 printng 到控制台是否有 NULL ?我知道我可以删除 println 但不会打印“没有这样的人”。
更新:我终于设法按要求完成了这项工作 - 我只是删除了 println 和“没有这样的人”并用这个替换它们:
doesCarrierExist(carrierName) ? exists() : addCarrier(carrierName)
exists 方法在基类中简单地称为 println 语句。我希望这对以后遇到类似问题的人有所帮助。
【问题讨论】:
-
避免打印
null的正确方法是避免调用println。换句话说,您应该将代码改回使用if语句。他们没有任何问题。 -
你在寻找类似
doesPersonExist(personName) ? addPerson(personName) :println( 'No such person')`的东西吗?
标签: java groovy null ternary-operator