Groovy 如何避免丢失PropertyException

Groovy 如何避免丢失PropertyException,groovy,Groovy,如果一个对象没有属性,而我正在访问该属性,我们会得到一个MissingPropertyException。我是否可以执行类似于safe null(?。)的操作以防止丢失属性,从而不会引发异常?一个选项是: def result = obj.hasProperty( 'b' ) ? obj.b : null 如果对象没有属性,则返回null 另一种方法是向类中添加属性missing,如下所示: def propertyMissing( name ) { null } 这意味着任何缺少的属性

如果一个对象没有属性,而我正在访问该属性,我们会得到一个
MissingPropertyException
。我是否可以执行类似于safe null(
?。
)的操作以防止丢失属性,从而不会引发异常?

一个选项是:

def result = obj.hasProperty( 'b' ) ? obj.b : null
如果对象没有属性,则返回null

另一种方法是向类中添加
属性missing
,如下所示:

def propertyMissing( name ) {
  null
}

这意味着任何缺少的属性都将导致null。

您也可以使用try/catch

try
{   env.GERRIT_TOPIC=GERRIT_TOPIC
}
catch (e_val)
{   echo 'missing GERRIT_TOPIC'
}