14

如果一个对象没有属性并且我正在访问该属性,我们会得到一个MissingPropertyException. 我可以做一些类似于安全 null ( ?.) 的事情来防止丢失属性,因此它不会引发异常吗?

4

2 回答 2

18

一种选择是:

def result = obj.hasProperty( 'b' ) ? obj.b : null

如果对象没有属性,它将返回 null ...

另一个是像这样添加propertyMissing到您的课程中:

def propertyMissing( name ) {
  null
}

这意味着任何缺少的属性只会导致 null。

于 2012-11-02T14:15:10.760 回答
0

你也可以使用 try/catch

try
{   env.GERRIT_TOPIC=GERRIT_TOPIC
}
catch (e_val)
{   echo 'missing GERRIT_TOPIC'
}
于 2016-10-19T07:51:41.087 回答