If statement 什么';在下面的场景中,检查空值的更优雅的方法是什么?

If statement 什么';在下面的场景中,检查空值的更优雅的方法是什么?,if-statement,groovy,null,null-check,If Statement,Groovy,Null,Null Check,我正在使用Groovy。以下哪种方式更优雅 if (!token) { token = this.getToken(key, callback) if(!token) { return params = null } } 因此,如果当用户进入该流时,令牌已经存在,则应该使用该令牌。但是,如果令牌不存在,我们应该尝试生成一个令牌。我们用来获取令牌的服务不会抛出异常,如果没有创建异常,它只返回null。如果令牌没有成功创建(仍然为null),我们希望将参数设

我正在使用Groovy。以下哪种方式更优雅

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

    if(!token) {
      return params = null
    }

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


有没有更干净的方法来做我正在做的事情?空检查中的空检查在我看来很难看。

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

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

如果新生成的令牌不为null,您应该如何处理params?如果params为null,则与令牌关联的按钮将隐藏在视图中。因此,如果你不能基本上得到令牌,该功能将被禁用的用户。我喜欢它,至少它在视觉上简化了它,如果没有其他。