10 月 23 - 25 日,QCon 上海站即将召开,现在购票,享9折优惠 了解详情
写点什么

用 Groovy 能玩出来的漂亮把戏

  • 2007-06-30
  • 本文字数:1005 字

    阅读完需:约 3 分钟

随着动态语言开始在 JDK 6 中扮演重要角色,Groovy 专家 Guillaume Laforge、Dierk Konig 和 Guillaume Alleon 在“用 Groovy 能玩出来的漂亮把戏(Cool things you can do with Groovy)”研讨会向开发人员展示了 Groovy 语言的特性,从而帮助开发人员提高生产力。

演讲的一开始介绍了 Groovy 的标准特性(增强的语言特性、闭包 [Closures]、正则表达式支持、GString 和集合等等),随后还讨论了一些对提高生产力更有帮助的语言特性,其中最为引人注意的包括:

Groovy Builders 和 GPath:你不再需要通过翻译砸的 XPath API 来访问数据了。使用 GPath 操作 XML 文档就像直接操作对象一样,允许你通过调用属性来访问数据;而使用 Builder,你可以反过来使用对象和 大括号来创建 XML 文件。除了 XML Builder 以外,还有 Swing 和 Ant 的 Builder。

对 Annotation 的支持:在今年稍后发布 1.1 版本之后,Groovy 将成为唯一支持 Annotation 的动态语言。由于它 将允许双向的数据访问,因此这是一个重要的里程碑。一个使用了 Google Juice 和 TestNG 的演示展示了使用注入的 Mock 数据的测试用例开发起来是多么轻而易举的一件事情。

Live Objects:Groovy 外壳(Shell)的特性不仅是一个考察这门语言最简单的途径,而且可以用来交互地探索 Java 的运行期环境。当运行期配置被嵌入到一个应用程序中时,开发人员可以对这些配置进行探索,并且对其进行实时修改,这使得开发人员在永久性修改代码 之前,就可以检验所做的假设并且对理论进行测试。

动态的应用程序:在你的应用程序中可以选择这样一种方式:将 Groovy 代码编译成 Java 的 class 文件,然后在应用中使用这些 静态类。此外,开发人员还有其它选择。最有说服力的就是使用 GroovyClassloader,这种方式使得 Groovy 脚本在运行期被请求时才被编 译,这就允许在运行时期更改和使用源文件,而不必重启整个应用程序。

Charles Ditzel 在经过演讲人允许之后,发布 PPT 供大家下载

查看英文原文: Cool things you can do with Groovy - - - - - -

译者简介:吴磊,有多年软件开发经验,从 1999 年开始使用 C++,2002 年转入 Java 领域,具备 J2ME 和 J2EE 方面的开发经验。在多个项目开发过程中先后使 用过 WebWork、Spring、Hibernate 等开源项目。目前正在进行基于 Spring 轻量级 J2EE 开发,对敏捷方法有一些尝试。另外对 Erlang 很有兴趣,正在学习中。参与 InfoQ 中文站内容建设,请邮件至 china-editorial@infoq.com

2007-06-30 19:301206

评论

发布
暂无评论
发现更多内容

MySQL 系列教程之(六)DML 操作:数据的增删改

若尘

数据库 MySQL 数据库 8月日更

EMQ 映云科技成为开源项目 Vue.js 定期捐赠者

EMQ映云科技

Java 开源 大前端 emq

Go1.17正式发布--切片转为数组指针

草原狼

Go 语言

用Python爬取《王者荣耀》英雄皮肤数据并可视化分析,用图说话

Python研究者

8月日更

Android技术分享| 自定义ViewGroup实现直播间大小屏无缝切换

anyRTC开发者

android 音视频 实时通信 Android开发 大小屏切换

如何找到程序崩溃的 “凶手” ?

神策技术社区

数据库 程序员 埋点

Java 为什么设计成 String 不能用 == 来进行比较

HoneyMoose

千亿级模型在离线一致性保障方案详解

百度Geek说

百度 测试 后端

OPPO数据湖统一存储技术实践

安第斯智能云

大数据 数据湖 存储

从“人工”到“人工智能”,聊一聊本届东京奥运会的AI黑科技

行者AI

LeetCode题解:217. 存在重复元素,哈希表,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

linux工具之TC

webrtc developer

MaxCompute执行引擎核心技术DAG揭秘

阿里云大数据AI技术

webrtc Rtp/rtcp (1)

webrtc developer

价值连城 图灵奖得主Yoshua Bengio约书亚·本吉奥的采访 给AI从业者的建议 John 易筋 ARTS 打卡 Week 60

John(易筋)

ARTS 打卡计划

使用账号密码来操作github? NO!

程序那些事

Java GitHub 程序那些事

如何理解 Java 多线程

HoneyMoose

大一一个学期学多少编程算正常?

沉默王二

编程

老板不让用 AFNetworking,我该怎么办?

神策技术社区

大前端 后端 数据 数据采集

Vue进阶(四十):ref ($refs) 用法详解

No Silver Bullet

Vue 8月日更

webrtc AlrDetector

webrtc developer

centos8 mediasoup 搭建

webrtc developer

WebRTC mediasoup

基于KubeEdge实现中国移动10086客服云边协同平台

华为云原生团队

云计算 开源 运维 边缘计算 边缘技术

解读短小精悍的 Then 框架

fuyoufang

ios swift 阅读代码 8月日更

七步实现列表点击事件的采集

神策技术社区

大前端 后端 代码

Go语言chan实现原理,彻底搞懂chan读写机制

微客鸟窝

Go 语言 8月日更

史上最大DDoS攻击之争:这三次攻击,谁才是「最大」?

百度开发者中心

最佳实践 方法论 信息安全 案例分析 行业深度

网络货运平台要智能,安全的数据底座少不了

华为云开发者联盟

数据库 华为云 物流 智慧物流 可视化追踪

The Data Way Vol.2 | 做个『单纯』的程序员还真不简单

SphereEx

数据库 开源

前端基础二之css篇

ベ布小禅

8月日更

【LeetCode】学生考勤Java题解

Albert

算法 LeetCode 8月日更

用Groovy能玩出来的漂亮把戏_Java_Ian Roughley_InfoQ精选文章