加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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
?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读