Groovy / Grails是否允许在表达式的最后部分使用安全操作符?

时间:2014-09-23 20:52:38

标签: groovy

我想知道是否可以在表达式的最后部分使用Groovy null safe运算符。我见过这个:

a?.b?.c但我似乎无法使用a?.b?.c?

我需要在if语句检查中使用它,而不是这样做:

if (a.b.c != null && (a.b.c == something))我可以像这样简写:

if (a.b.c? == something)

由于

2 个答案:

答案 0 :(得分:1)

你需要

if (a?.b?.c == something)

最后的?不会添加任何内容(即使它确实有效),因为短路操作符只是确保表达式中的下一个内容可以干净地处理null

答案 1 :(得分:1)

null-check检查变量BEFORE ?,以确保可以调用属性AFTER。如果不满足其中一个条件,则使用运算符

是没有意义的

更新

您可以拨打equals

if( a.b.c?.equals( something ) )