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

groovy中对象的比较以及非空判断

发布时间:2020-12-14 16:50:33 所属栏目:大数据 来源:网络整理
导读:上几次曾经说过groovy中字符串以及集合的基本使用,但是有时我们可能要对这些对象进行比较,这次就围绕这个来分享我学到的东西,分享之前来补充一下in的使用,在前面几次的分享中其实已经使用过但是没有专门拿出来说过 1.in的使用 in一般和for一起配合使用,

上几次曾经说过groovy中字符串以及集合的基本使用,但是有时我们可能要对这些对象进行比较,这次就围绕这个来分享我学到的东西,分享之前来补充一下in的使用,在前面几次的分享中其实已经使用过但是没有专门拿出来说过

1.in的使用

in一般和for一起配合使用,产生的效果类似foreach,来看下吧

def arr=["上海","南京","福州"]
for(item in arr){
      println  item
}
上面的代码可以遍历list集合


2.groovy对象的比较

这种情况使用就比较多了,例如字符串、map集合、List集合的比较,来看看下面的这段代码:

 //groovy对象的比较比较---(重要)
        //1.字符串比较
        def str1="Hello World1"
        if("Hello World"==str1){
            println "Hello World"
        }else{
            println "不匹配"
        }
        //2.map集合的比较(list集合也可以这样比较)----(重要)
        def m1=["name":"李明","age":20]
        def m2=["name":"李明","age":21]
        def m3=["name":"李明","age":21]
        if(m1==m2){
            println "m1和m2匹配"
        }else{
            println "m1和m2不匹配"
        }

特别是字符串的比较,是不是比java要简洁的多呢


如果要比较两个对象的引用是否相同在groovy中可以使用is,如下所示:

  //判断对象的引用是否相同---(重要)
  println m1.is(m3)

3.if判断对象是否为空

groovy中判断对象是否为空,直接if(对象){}即可,这种便捷真的很强大


        //if判断对象是否为空
        def m5=["name":"Lucy"]
        //判断map集合是否为空(字符串或list都可以这么判断)----(重要)
        if(m5){
           println "m5不为空"
        }

但是这种写法还是不够简洁,groovy还提供了一种更简单的写法即 ?.

//更为方便的判断对象是否为空的操作符 ?.-------(重要)
println "${m5?.name}"

学了这段时间的groovy觉得收获还是很大的,下次打算分享一点groovy的特色知识MOP。


全部代码:

package org.lxh
public class UseRange{

	public static void main(def args){
        //定义一个range
		def range=1..15
		println range.contains(10);
		println range.from;
		println range.to;
        //使用range输出7天的日期
        def today = new Date()
        def nextWeek = today + 7
        (today..nextWeek).each{
            println it
        }
        //in的用法------(重要)
        def arr=["上海","福州"]
        for(item in arr){
           println  item
        }
        //groovy对象的比较比较---(重要)
        //1.字符串比较
        def str1="Hello World1"
        if("Hello World"==str1){
            println "Hello World"
        }else{
            println "不匹配"
        }
        //2.map集合的比较(list集合也可以这样比较)----(重要)
        def m1=["name":"李明","age":21]
        if(m1==m2){
            println "m1和m2匹配"
        }else{
            println "m1和m2不匹配"
        }
        //判断对象的引用是否相同---(重要)
        println m1.is(m3)
        //if判断对象是否为空
        def m5=["name":"Lucy"]
        //判断map集合是否为空(字符串或list都可以这么判断)----(重要)
        if(m5){
           println "m5不为空"
        }
        //更为方便的判断对象是否为空的操作符 ?.-------(重要)
        println "${m5?.name}"
	}
	
}

(编辑:李大同)

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

    推荐文章
      热点阅读