还有更多" Groovy"编写这个Groovy代码的方法:
def myVar=(System.getProperty("props") == null)?
null : System.getProperty("props")
逻辑是:
System.getProperty("props")
为NULL,我希望props
为NULL; props
为System.getProperty("props")
答案 0 :(得分:10)
通常对于空值检查我到达?:
(elvis运算符,如果左侧为空或者解析为false则返回默认值)或?.
(安全导航,计算结果为null)如果左侧为空)。如果要设置在属性不存在时使用的默认值,可以执行以下操作:
def myVar = System.properties['props'] ?: 'mydefaultvalue'
将myVar设置为' mydefaultvalue'如果在System.properties中找不到任何关键字' props' (或者如果返回的值解析为false)。但是,因为您的案例中的默认值为null,所以
def myVar = System.properties['props']
也可以完成这项工作,因为当找不到给定键的任何内容时,则返回null。
这里的Groovy -ifications是:
如果您不需要GroovyString插值,则首选单引号字符串为双引号字符串
对地图和列表使用带括号括号的语法(而不是' get'或' put')
如果getter没有参数,则使用shortened property form(不带get
前缀)(与Java不同,Groovy实现universal access principle); System.getProperty(String)
对Java程序员来说很方便,但在Groovy中不需要它
使用?:
使用||
:
def myVar = System.properties['props'] || 'mydefaultvalue'
不起作用。布尔测试的结果是布尔值,因此myVar设置为true。