Groovy的一些坑
为什么80%的码农都做不了架构师?>>>
坑1:each闭包return陷阱
因为each使用闭包进行循环,所以在闭包中return相当于跳出了本次循环中的闭包,并不会终止循环。所以在each闭包中的return与for循环中的continue类似
class TestEach {def static list = [1,2,3,4,5]static main(args){
// 1
// 2
// 3
// 4
// 5list.each {println itreturn}// ------------------------------println '-'*30// 1for(int i=0;i<list.size();i++){println list[i]return}}
}
坑2:Map存值方式陷阱
如下面代码所示:map前两种赋值方式,都有问题。但是第二种方式保存的map输出是正常的,取值的时候却取不到。
打印key的class类型发现是GString,用String去取值就会取不到了。
class TestMap {def static map1 = [:]def static map2 = [:]def static map3 = [:]def static map4 = [:]def static map5 = [:]static main(args){String val = 'a'//Errormap1 << [val:'b']//Errormap2 << ["$val":'b']map3["$val"] = 'b'map4[val] = 'b'map5."$val" = 'b'//[val:b]println map1//[a:b]println map2//[a:b]println map3//[a:b]println map4//[a:b]println map5println '-'*30//nullprintln map1['a']//nullprintln map2['a']//bprintln map3['a']//bprintln map4['a']//bprintln map5['a']map2.each {k,v->//class org.codehaus.groovy.runtime.GStringImplprintln k.class}}
}
转载于:https://my.oschina.net/morven/blog/374500
Groovy的一些坑相关推荐
- groovy 和 java的区别_Groovy和JAVA的区别
这段时间还是比较忙的博客也很久没写了 服务器也到期了一直没续费emmm 由于现在在写groovy的代码 所以这篇简单写点groovy相关的 1.Groovy和JAVA的区别 在Groovy中,将在运行 ...
- groovy使用范型的坑
java的范型 Map<String, Integer> map = new HashMap<>(); map.put("a", 100); map.put ...
- Groovy与Java集成常见的坑--转
https://yq.aliyun.com/articles/2357 groovy特性 Groovy是一门基于JVM的动态语言,同时也是一门面向对象的语言,语法上和Java非常相似.它结合了Pyth ...
- Groovy与Java集成常见的坑
groovy特性 Groovy是一门基于JVM的动态语言,同时也是一门面向对象的语言,语法上和Java非常相似.它结合了Python.Ruby和Smalltalk的许多强大的特性,Groovy 代码能 ...
- Android热补丁之Robust(三)坑和解
在前两篇文章中,分析了 Android 热补丁框架 Robust 中,几个重要的流程包括: 补丁加载过程 基础包插桩过程 补丁包自动化生成过程 本篇文章主要分析下集成过程中遇到的坑以及分析问题的思路和 ...
- [Android]用架构师角度看插件化(3)-Replugin 需要占坑跳转?
一.占坑 什么是占坑?为什么要占坑? Android插件化中,从一个插件Activity跳转到不同插件的Activity的时候,是否可以能正常跳转成功? 声明Activity需要配置什么? 声明Act ...
- mongodb 输出数组字段_JMeter之Groovy对MongoDB操作
背景 使用Jmeter做接口测试时需要初始数据,需要连接数据库,然而我们的后端使用的是MongoDB. 操作步骤 2.1 导入将连接MongoDB 所涉及的jar包导入jmeter的扩展lib1)扩展 ...
- gitea 手动编译过程,以及踩坑记录
gitea 手动编译过程,以及踩坑记录 一: 环境介绍 二:下载源码 三:编译安装go 环境 3.1 修改源为阿里 3.2 添加执行权限 3.2 添加环境变量 四:安装nodejs 4.1 添加源 4 ...
- groovy基本语法及在项目中使用
一.前言 由于业务系统用到了 Groovy 语言,本次分享就当对groovy 语言做一个简单总结,主要内容参考于官方文档(Groovy 的官方文档还是非常不错的,强烈推荐阅读),希望对 Groovy ...
最新文章
- 几何分布的期望和方差
- Linux系统Vi/Vim编辑器的简单介绍、安装/卸载、常用命令
- 笔记-中项案例题-2017年上-风险管理
- [控件] TranformFadeView
- ROS-kinetic 机器语音 之科大讯飞SDK
- linux中Shell历史命令记录文件的路径是什么
- DOS 网络命令之 netstat
- 中国广告营销行业资本报告2020
- 乒乓球比赛 两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比 请编程序找出三队赛手的名单。
- 阿里java开发编程规范
- 大牛解密阿里云直播技术平台
- HTTP学习(3)--解析报文
- 23种设计模式用英语如何表达?
- 程序猿头头(object与数组的简单应用)
- 计算机位置不可用d 桌面,win10系统开机提示desktop不可用位置如何解决
- 六年工作经验总结分享,希望可以帮到你
- 银河麒麟V10 远程桌面
- Oracle中以insert values的形式同时插入多条记录
- 基于Java的飞机大战的课程设计与实现
- 新媒体运营:23种免费获取流量的运营套路 ,你知道几种? 黎想