`

Groovy 映射

 
阅读更多

Groovy 映射

除了丰富的列表处理功能,Groovy 还提供了坚固的映射机制。同列表一样,映射也是本地数据结构。而且 Groovy 中的任何映射机制在幕后都是 java.util.Map 的实例。

Java 语言中的映射

Java 语言中的映射是名称-值对的集合。所以,要用 Java 代码创建典型的映射,必须像下面这样操作:

Map<String, String>map = new HashMap<String, String>();
map.put("name", "Andy");
map.put("VPN-#","45");

一个 HashMap 实例容纳两个名称-值对,每一个都是 String 的实例。

通过 Groovy 进行映射

Groovy 使得处理映射的操作像处理列表一样简单 — 例如,可以用 Groovy 将上面的 Java 映射写成

def hash = [name:"Andy", "VPN-#":45]

请注意,Groovy 映射中的键不必是 String。在这个示例中,name 看起来像一个变量,但是在幕后,Groovy 会将它变成 String

全都是 Java

接下来创建一个新类 Mapper 并加入上面的代码。然后添加以下代码,以证实底层的代码是真正的 Java 代码:

assert hash.getClass() == java.util.LinkedHashMap

可以看到 Groovy 使用了 Java 的 LinkedHashMap 类型,这意味着可以使用标准的 Java 一样语句对 hash 中的项执行 putget 操作。

hash.put("id", 23)
assert hash.get("name") == "Andy"

有 groovy 特色的映射

现在您已经看到,Groovy 给任何语句都施加了魔法,所以可以用 . 符号将项放入映射中。如果想将新的名称-值对加入映射(例如 dob 和 “01/29/76”),可以像下面这样操作:

hash.dob = "01/29/76"

. 符号还可以用来获取项。例如,使用以下方法可以获取 dob 的值:

assert hash.dob == "01/29/76"

当然 . 要比调用 get() 方法更具 Groovy 特色。

位置映射

还可以使用假的位置语法将项放入映射,或者从映射获取项目,如下所示:

assert hash["name"] == "Andy"
hash["gender"] = "male"
assert hash.gender == "male"
assert hash["gender"] == "male"

但是,请注意,在使用 [] 语法从映射获取项时,必须将项作为 String 引用。

分享到:
评论

相关推荐

    Generate POJOs.groovy

    IDEA通过Generate.POJOs.groovy映射数据库自动生成对应的Java实体类, 具体逻辑不详细展示,可参考:https://blog.csdn.net/weixin_40375601/article/details/106807644

    groovy http请求

    groovy请求方式,比较好的工具需要的自取,不积跬步无以至千里

    GOM:Groovy 对象映射器

    GOM Groovy 对象映射器

    Groovy入门经典.pdf

     Groovy提供类似于Java的语法结构,本地化支持映射和列表、方法、类,闭包和构造器等结构。由于具有动态弱类型,以及无缝访问JavaAPI等特性,Groovy语言非常适合子开发中小型规模的应用程序。  相对于Java语言,...

    Groovy入门经典

    Groovy提供类似于Java的语法结构,本地化支持映射和列表、方法、类,闭包和构造器等结构。由于具有动态弱类型,以及无缝访问JavaAPI等特性,Groovy语言非常适合子开发中小型规模的应用程序。, 相对于Java语言,...

    grails-data-mapping:GORM-Groovy对象映射

    GORM(Grails对象映射) [Grails] [Grails]是用于使用[Groovy] [Groovy]编程语言构建Web应用程序的框架。 该项目为Hibernate和NoSQL数据存储上的GORM的新实现提供了GORM API管道。 [Grails]: : [Groovy]: : ...

    GenerateForMybatisPlus.groovy

    日常的开发都用到 Mybatis Plus,但是每次开新功能都得设计表、映射实体代码,写相关service、mapper。这些过程都是繁琐而重复的,于是想通过逆向生成的方式,自动通过数据表,可以逆向生成相关的单表CRUD代码,IDEA...

    IntelliJSettings:我的Intellij IDEA设置已导出Jar。 (编辑器首选项,键盘映射等)

    (编辑器首选项,键盘映射等)此外,我还设置了一些键盘映射的描述,以提高工作效率。 这对我来说是一个参考。 欢迎合作和提出建议 用法:下载settings.jar文件并遵循: 一些有用的资源: 脚本扩展 我们可以使用...

    MCPConfig:MCP SRG映射的面向公众的仓库

    MCPConfig MCP SRG映射的面向公众的仓库。 这不是供最终用户使用的。 这不能替代MCP。 这将不允许您制作Mod。 不要问。 这仅是为了公开更新MC混淆映射过程的一部分。 以及将这些映射发布到以便其他人可以以标准方式...

    Grails 技术精解与Web开发实践【源码+样章】----下载不扣分,回帖加1分,欢迎下载,童叟无欺

    1.3.1 Groovy语言 3 1.3.2 Grails站在了巨人的肩膀之上 3 1.3.3 Grails有良好的扩展性 3 1.4 对Grails的一些误解 3 1.5 本书的使用说明 4 1.6 本章小结 4 第一篇 入门篇 第2章 Hello Grails 6 2.1 Grails的安装 6 ...

    source-ir-fitter:将源代码元素映射到IR元素的工具

    这项工作正在进行中,目前(部分)支持以下源语言:Java,Groovy,Kotlin。 建造要求 将Kotlin ANTLR语法安装到本地Maven存储库: ./install-kotlin-parser.sh 然后,安装该工具: ./gradlew installDist 基本...

    java开源包7

    集中管理请求参数与参数映射 以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展支持(REST, RPC, SOAP, etc) Rails3消息队列系统 Sidekiq Sidekiq 为 Rails 3 应用程序提供一个高效的消息...

    Grails权威指南

     2.1 groovy和java的异同  2.1.1 相同点  2.1.2 不同点  2.2 基础知识  2.1.1 类声明 . 2.2.2 语言级断言(assertion)  2.2.3 groovy字符串  2.2.4 闭包(closures)  2.2.5 列表...

    DropTables:来自 https 的分叉

    报告生成器由三个主要组件组成:默认参数映射、Groovy 脚本和 Groovy 模板。 参数被送入脚本引擎以解释 Groovy 脚本,而 Groovy 脚本又可以查询 Mongo 以生成一个或多个变量绑定并执行业务逻辑。 这些最终的变量...

    DropTables:另一个 Java + MongoDB Web 应用程序

    报告生成器由三个主要组件组成:默认参数映射、Groovy 脚本和 Groovy 模板。 参数被送入脚本引擎以解释 Groovy 脚本,而 Groovy 脚本又可以查询 Mongo 以生成一个或多个变量绑定并执行业务逻辑。 这些最终的变量...

    grails-docs-2.0.3.zip

    易于使用的基于Hibernate的对象-关系映射(ORM)层 称为Groovy Server Pages (GSP)的表现层技术 基于Spring MVC的控制器层 构建于Gant 上的命令行脚本运行环境 内置Jetty服务器,不用重新启动服务器就可以进行...

    Grails 中文参考手册

    6.2 Groovy Server Pages 6.2.1 GSP基础 6.2.1.1 变量和作用域 6.2.1.2 逻辑和迭代 6.2.1.3 页面指令 6.2.1.4 表达式 6.2.2 GSP标签 6.2.2.1 变量和作用域 6.2.2.2 逻辑和迭代 6.2.2.3 搜索和过滤 6.2.2.4 链接和...

    Grails开源框架 - 使用指南

    易于使用的基于Hibernate的对象-关系映射(ORM)层称为Groovy Server Pages (GSP)的表现层技术基于Spring MVC的控制器层构建于Gant 上的命令行脚本运行环境内置Jetty服务器,不用重新启动服务器就可以进行重新加载利用...

    使用Grails快速开发Web应用.rar

    易于使用的基于Hibernate的对象-关系映射(ORM)层称为Groovy Server Pages (GSP)的表现层技术基于Spring MVC的控制器层构建于Gant 上的命令行脚本运行环境内置Jetty服务器,不用重新启动服务器就可以进行重新加载利用...

Global site tag (gtag.js) - Google Analytics