Groovy Tip 3:如何在if条件语句中判断对象为空 -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

在Java语言编程中,对对象的非空判断是一个永恒的话题,

Groovy Tip 3:如何在if条件语句中判断对象为空

。例如,我们经常需要对一个字 符串进行如下的判断:

if(str!=null&&!str.equals(""))
  {
    ......
}

输入这样的语句的确使人生厌,而且有时候还会忘掉输入“!str.equals ("")”语句中的“!”导致代码出现逻辑错误。

而敏捷的Groovy语言开发就不需要我们担心这样的问题。同样的判断语句,我们只需要输 入下面的代码:

def str = null
  if(str)
  {
    println"str is not null"
  }
  else
  {
    println'str is null'
}

这个语句段的执行结果为:

str is null

可以看出,if(str)判断语句,当str为null的时候,不执行。你可能要问,当str = ''的 时候会怎样呢?

def str = ''
  if(str)
  {
    println"str is not null"
  }
  else
  {
    println'str is null'
}

执行结果还是:

str is null

这样,我们可以把开头的那段Java代码改写成如下的代码了:

if(str)
  {
    ......
}

这样就简洁多了。不是吗?

除了字符串对象,那其他对象的非空判断呢?我们来看下面的例子:

def map = ['key1':'value1']
  if(map)
  {
    println'map is not null'
  }
  else
  {
    println'map is null'
  }
  map.remove('key1')
  if(map)
  {
    println'this time,map is not null'
  }
  else
  {
    println'this time,map is null'
}

执行结果为:

map is not null

this time,map is null

同样,我们来看看List对象:

def list = []
  if(list)
  {
    println'list is not null'
  }
  else
  {
    println'list is null'
  }
  list<<'a'
  if(list)
  {
    println'here, list is not null'
  }
  else
  {
    println'here, list is null too'
}

输出结果为:

list is null

here, list is not null

如果是Domain对象呢?

class Empl
{
  String name
}

执行下面的语句:

Empl em = new Empl()
  if(em)
  {
    println'em is not null'
  }
  else
  {
    println'em is null'
}

结果为:

em is not null

可以看出,对于Domain对象,只要该对象不是null,则if(em)条件为true,

电脑资料

Groovy Tip 3:如何在if条件语句中判断对象为空》(https://www.unjs.com)。

最新文章