在以下场景中检查空值的更优雅的方法是什么?

时间:2015-03-30 16:26:32

标签: if-statement groovy null null-check

我正在使用Groovy。以下是一种更优雅的方法吗?

if (!token) {
    token = this.getToken(key, callback)

    if(!token) {
      return params = null
    }

}

因此,如果用户进入此流程时已存在令牌,则应使用该令牌。但是,如果令牌不存在,我们应该尝试生成令牌。我们用于获取令牌的服务如果没有创建则不会抛出异常,它只返回null。如果令牌未成功创建(仍为空),我们希望将params设置为null。

有没有更清洁的方式去做我正在做的事情?空检查中的空检查对我来说似乎很难看。

1 个答案:

答案 0 :(得分:2)

可以使用elvis运算符重写第一部分以消除第一个空检查:

token = token ?: this.getToken(key, callback)
if (!token) {
   ...
}