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

 我来答
她是我的小太阳
高粉答主

推荐于2016-11-18 · 醉心答题,欢迎关注
知道顶级答主
回答量:5.1万
采纳率:83%
帮助的人:8942万
展开全部
Groovy Tip 3 如何在if条件语句中判断对象为空

在Java语言编程中,对对象的非空判断是一个永恒的话题。例如,经常需要对一个字符串进行如下的判断:
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。
枫默管管83G
推荐于2017-12-15 · 超过58用户采纳过TA的回答
知道答主
回答量:125
采纳率:0%
帮助的人:54.4万
展开全部
例如,我们经常需要对一个字符串进行如下的判断: 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 nullthis time,map is null 同样,我们来看看List对象: def list = [] if(list) { println'list is not null' } else { println'list is null' } list
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式