Groovy Tip 4 对象非空判断及“?”运算符
来源:互联网 发布:模糊匹配算法 编辑:程序博客网 时间:2024/06/05 18:36
Groovy Tip 4 对象非空判断及“?”运算符
对于一个Domain类对象,如下面的例子:
class Empl
{
String name
}
我们需要对它进行操作,比如打印“name”属性的值,我们首先要对它进行非空判断,如下:
def em
if(em)
{
println"name: $em.name"
}
em = new Empl()
em.name = 'Tom'
if(em)
{
println"name: $em.name"
}
很显然,如果不做非空判断,那么在第一个println语句就会抛出一个Exception,做了判断,则不会出任何的问题。
当然,对于我们的敏捷编程来说,上面的if语句虽然简单,但仍然是麻烦的。基于这样的原因,Groovy语言为我们提供了“?.”操作符。
使用“?.”操作符,我们可以把上面的语句段修改为如下:
def em
println"name: ${em?.name}"
em = new Empl()
em.name = 'Tom'
println"name: ${em?.name}"
其中,“em?.”是判断em对象是否为空,如果为空,则不再往下计算,而是将整个计算式返回一个null。
上面的语句段的执行结果为:
name: null
name: Tom
这样的简化的确是让我们的编码方便了很多。
我们甚至可以写出形如下面的代码:
println"city name: ${em?.addr?.city?.name }"
想想看,这样的代码如果用if语句进行判断,那将会是怎样的繁琐?
一提到“?”运算符,我们很容易想起Java语言的“?”运算符,想起类似下面的代码行:
def em
println em==null?"":em.name
这曾经是我们津津乐道的Java语言为我们做的简化。对于这样一个简化了的语句,Groovy语言仍然为我们做了进一步的简化:
def em
println em ? em.name:""
是不是更加简单了一些?
值得注意的是,“em?”是当em对象不为空的时候为true,所以上面的语句中,“em.name”在前面,而“”在后面。
- Groovy Tip 4 对象非空判断及“?”运算符
- Groovy Tip 13 “.&”运算符
- groovy中对象的比较以及非空判断
- Groovy Tip 3 如何在if条件语句中判断对象为空
- js 判断非空对象的方法
- Groovy Tip 7 “<<”操作符
- Groovy Tip 15 “*”操作符
- Groovy Tip 17 “*.”操作符
- String的非空判断、Integer的非空判断、list的大小判断,对象的非空判断
- 非空判断
- String非空判断
- js非空判断
- List判断非空
- 非空判断注意
- 非空判断
- Java非空判断
- js 非空判断
- 非空判断
- oracle中获取毫秒数
- 如何获取程序运行时间?
- JDBC学习之三Batch
- .NET 2.0 - WinForm Control - DataGridView 数据绑定
- 程序人生:女程序员的求职奋斗史
- Groovy Tip 4 对象非空判断及“?”运算符
- Rational Rose 2003 安装文件下载及破解方法
- mysql在dos下查询怎么正确显示中文的问题
- 精通Silverlight——11.1.3 编写后台代码
- 您可能是盗版软件的受害者——解决办法
- linux系统下配置jsp开发环境
- 补充HGE中关于vc6中的设置
- Gridview_operating(.net_summary)
- 精通Silverlight——11.1.4 Silverlight程序集介绍