Groovy Tip 3 如何在if条件语句中判断对象为空
发布时间:2020-12-14 17:00:32 所属栏目:大数据 来源:网络整理
导读:???????????? Groovy Tip 3 如何在if条件语句中判断对象为空 ? 在Java语言编程中,对对象的非空判断是一个永恒的话题。例如,我们经常需要对一个字符串进行如下的判断: ??? ? if (str!= null !str.equals( "" )) ??? ?{ ?????? ?...... ?} 输入这样的语句的
????????????
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
。
?
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |