精通-Groovy

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

关于Groovy这一节将学习Groovy的基础知识:它是什么,它与Java语言和JVM的关系,以及编写Groovy代码的一些要点。什么是Groovy?Groovy是JVM的一个替代语言—替代是指可以用Groovy在Java平台上进行Java编程,使用方式基本与使用Java代码的方式相同。在编写新应用程序时,Groovy代码能够与Java代码很好地结合,也能用于扩展现有代码。目前的Groovy版本是1.5.4,在Java1.4和Java5平台上都能使用,也能在Java6上使用。Groovy的一个好处是,它的语法与Java语言的语法很相似。虽然Groovy的语法源于Smalltalk和Ruby这类语言的理念,但是可以将它想像成Java语言的一种更加简单、表达能力更强的变体。(在这点上,Ruby与Groovy不同,因为它的语法与Java语法差异很大。)许多Java开发人员非常喜欢Groovy代码和Java代码的相似性。从学习的角度看,如果知道如何编写Java代码,那就已经了解Groovy了。Groovy和Java语言的主要区别是:完成同样的任务所需的Groovy代码比Java代码更少。(有时候会少很多!)Groovy快捷方式开始使用Groovy时,您会发现它使日常的编程活动变得快了许多。完成本教程之后,您会了解更多的Groovy语法快捷方式。不过现在只需知道以下这些要点:Groovy的松散的Java语法允许省略分号和修改符。除非另行指定,Groovy的所有内容都为public。Groovy允许定义简单脚本,同时无需定义正规的class对象。Groovy在普通的常用Java对象上增加了一些独特的方法和快捷方式,使得它们更容易使用。Groovy语法还允许省略变量类型。回页首Groovy的新增特性虽然Groovy允许省略Java语法中的一些元素,但也增加了一些新特性,例如本地集合、内置的正则表达式和闭包。在标准的Java代码中,如果想要创建一个项列表,首先要导入java.util.ArrayList,然后程序化地初始化ArrayList实例,然后再向实例中添加项。在Groovy中,列表和映射都内置在语法中—无需导入任何内容。正则表达式也不需要额外的导入或对象;它们可以通过特殊的Groovy语法来创建。关于闭包对于任何Java开发人员来说,闭包都是一个令人兴奋的新技巧。这些神奇的构造将会包含在未来的Java发行版(很可能是Java7)中,成为正式的Java语法,但现在已经可以在Groovy中使用了。可以将闭包想像为一个代码块,可以现在定义,以后再执行。可以使用这些强大的构造做许多漂亮的事,不过最著名的是简化迭代。使用Groovy之后,就有可能再也不需要编写Iterator实例了。动态的Groovy从技术上讲,Groovy可能是您最近听说过的类型最松散的动态语言之一。从这个角度讲,Groovy与Java语言的区别很大,Java语言是一种固定类型语言。在Groovy中,类型是可选的,所以您不必输入StringmyStr=Hello;来声明String变量。回页首回页首除此之外,Groovy代码还能在运行时轻松地改变自己。这实际上意味着,能够在运行时轻松地为对象指定新方法和属性。这一编程领域称为元编程,Groovy能够很好地支持这种编程方式。在学习本教程的过程中,您将了解到关于Groovy的动态性质的更多内容。现在惟一要补充的是,您会惊讶地发现,在Groovy会使操作XML或普通的java.io.File实例变得非常轻松。一体两面用Groovy编写的任何内容都可以编译成标准的Java类文件并在Java代码中重用。类似地,用标准Java代码编写的内容也可以在Groovy中重用。所以,可以轻易地使用Groovy为Java代码编写单元测试。而且,如果用Groovy编写一个方便的小工具,那么也可以在Java程序中使用这个小工具。Groovy初探学习新语言并不是件小事,即使是Groovy也不例外。这一节将介绍学习Groovy的更多动力。另外还将第一次看到一些Groovy代码,并了解Groovy与Java编程的比较。为什么要学习Groovy?即使Groovy与Java语言有许多相似之处,它仍然是另一个语言。您可能想知道为什么应该花时间学习它。简单的回答就是:Groovy是一种更有生产力的语言。它具有松散的语法和一些特殊功能,能够加快编码速度。只用一个示例即可说明问题:一旦发现使用Groovy在集合中导航的容易程度,您就再也不会用Java处理集合导航了。能够用Groovy快速编写代码,这还意味着能够更快地收到反馈,更不用说完成任务列表中的工作带来的满足感了。在较高层面上,如果能更快地将代码交付给利益相关者,那么就能在更短的时间内交给他们更多发行版。实际上,Groovy比Java更有助于敏捷开发。回页首入门非常容易如果仍然觉得采用新语言很困难,那么可以看看将Groovy集成到开发环境有多么容易。您无需安装新的运行时工具或专门的IDE。实际上,只需将Groovy的一个jar文件放在类路径中即可。而且,Groovy是一种开源语言,由热心的Java开发人员社区管理。因为Groovy获得ApacheSoftwareLicense,Version2.0,所以可以自由地使用它开发自由软件和私有软件。Groovy和Java语言对比买车的时候,如果不试驾一下,是不会买的。所以,在要求您安装Groovy之前,我会演示一些代码。首先,回顾一下用Java如何创建、编译和运行标准的HelloWorld示例;然后再看看如何使用Groovy代码执行同一过程。比较这两个示例,很容易就能看到这两种语言之间的差异。用Java编写的HelloWorld回页首回页首回页首用Java编写的典型的HelloWorld示例如下所示:publicclassHelloWorld{publicstaticvoidmain(String[]args){System.out.println(HelloWorld!);}}编译和运行Java示例在这个简单的HelloWorld类中,我省略了包,而且向控制台输出的时候没有使用任何多余的编码约定。下一步是用javac编译这个类,如下所示:c:javacHelloWorld.java最后,运行经过编译的类:c:javaHelloWorld迄今为止还不错—很久以前就会编这么基础的代码了,所以这里只是回顾一下。下面,请看用Groovy编码的相同过程。用Groovy编写的HelloWorld就像前面提到过的,Groovy支持松散的Java语法—例如,不需要为打印“HelloWorld!”这样的简单操作定义类。而且,Groovy使日常的编码活动变得更容易,例如,Groovy允许输入println,而无需输入System.out.println。当您输入println时,Groovy会非常聪明地知道您指的是System.out。所以,用Groovy编写HelloWorld程序就如下面这样简单:printlnHelloWorld!回页首请注意,在这段代码周围没有类结构,而且也没有方法结构!我还使用println代替了System.out.println。运行Groovy示例假设我将代码保存在文件MyFirstExample.groovy内,只要输入以下代码就能运行这个示例:c:groovyMyFirstExample.groovy在控制台上输出“HelloWorld!”所需的工作就这么多。快捷方式应用您可能注意到了,我不必编译.groovy文件。这是因为Groovy属于脚本语言。脚本语言的一个特点就是能够在运行时进行解释。(在Java中,要从源代码编译生成字节码,然后才能进行解释。区别在于脚本语言能够直接解释源代码。)Groovy允许完全省略编译步骤,不过仍然可以进行编译。如果想要编译代码,可以使用Groovy编译器groovyc。用groovyc编译Groovy代码会产生标准的Java字节码,然后可以通过java命令运行生成的字节码。这是Groovy的一项经常被忽略的关键特性:用Groovy编写的所有代码都能够通过标准Java运行时编译和运行。至于运行代码,如果我希望更加简洁,我甚至还能输入c:groovy-eprintln'HelloWorld!'这会生成相同的结果,而且甚至无需定义任何文件!Groovy入门在这一节中,将真正开始进行Groovy编程。首先,学习如何轻松地安装Groovy(通过EclipseGroovy插件),然后从一些有助于了解Groovy的简单示例开始。轻松安装Groovy为了迅速开始使用Groovy,需要做的全部工作就是安装Eclipse的Groovy插件。打开Ecliplse,在Help菜单中选择SoftwareUpdatesFindandInstall...。图1显示了执行以上步骤之后出现的对话框:图1.EclipseFeatureUpdates对话框在选项中导航接下来,出现一个对话框,里面包含两个选项。请选择Searchfornewfeaturestoinstall单选按钮。单击Next按钮,然后选择NewRemoteSite...。出现一个新的对话框,里面包含两个需要填写的字段:新位置的名称和该位置的URL,如图2所示:图2.确保为新的远程站点提供了正确的URL输入“Groovyplugin”作为名称,输入“”作为位置,单击OK按钮,在随后出现的Sitestoincludeinsearch框中确保选中了名为“Groovyplugin”的项目—现在的列表应该如图3所示。图3.Eclipse中的远程网站清单完成安装单击Finish按钮之后,应该会出现SearchResults对话框。请再次确定选中了“Groovyplugin”框并单击Next按钮,这一步骤如图4所示:图4.选择Groovy插件经过一系列确认之后,将会下载插件,然后可能需要重新启动Eclipse。创建Groovy项目Eclipse重启之后,就能够创建第一个Groovy项目了。请确保创建两个源文件夹—一个称为“groovy”,另一个称为“java”。编写的Groovy代码放在groovy文件夹,Java代码放在java文件夹。我发现将二者分开将会很有用,如图5所示:回页首图5.两个源文件夹—Java和Groovy将Groovy导入项目回页首项目创建之后,右键单击项目的图标,应该会看到一个Groovy选项,如图6所示。请选择该选项,然后选择AddGroovyNature选项。这样做可以将必要的Groovy库、编译器和运行程序导入到项目中。图6.在Eclipse中添加Groovy特性创建Groovy类创建Groovy类很简单。选择groovy文件夹并右键单击它。选择New,然后选择Other,如图7所示:回页首图7.通过New菜单创建Groovy类给类命名在这里,找到Groovy文件夹,并选择GroovyClass—应该会看到一个对话框,如图8所示。图8.选择创建Groovy类单击Next按钮,系统将要求您提供类的名称。输入HelloWorld。现在可以将HelloWorldGroovy类保留在默认包内,如图9所示。图9.现在不必考虑包的问题!虽然步骤看起来很多,但这与创建标准的Java类并没有什么区别。HelloWorld!—用Groovy编写的Java程序单击Finish按钮,应该会看到如下所示的代码段:classHelloWorld{staticvoidmain(args){回页首}}这看起来同前面的JavaHelloWorld示例惊人地相似。但是请注意,它不包含public修改符。而且,如果仔细查看main方法的参数,会注意到它没有类型。编译程序现在在main方法内加入printlnHelloWorld,完成后的代码看起来如下所示:classHel

1 / 52
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功