Groovy的本地安装和Eclipse插件的配置

举报
汪子熙 发表于 2022/04/15 18:53:16 2022/04/15
【摘要】 从Groovy的官网下载Development kit:https://groovy.apache.org/download.html下载到本地,解压:把解压后的文件夹路径添加到环境变量里。主要是GROOVY_HOME和Path里加入%GROOVY_HOME%\bin两条记录。如果直接在命令行里输入groovy加上文件名,如果能够成功执行,说明环境变量配置没有问题了。还可以在Eclipse这...

从Groovy的官网下载Development kit:

https://groovy.apache.org/download.html

下载到本地,解压:

把解压后的文件夹路径添加到环境变量里。

主要是GROOVY_HOME和Path里加入%GROOVY_HOME%\bin两条记录。


如果直接在命令行里输入groovy加上文件名,如果能够成功执行,说明环境变量配置没有问题了。

还可以在Eclipse这种IDE里安装Groovy的开发插件。
打开Eclipse,选择About,查看Eclipse的版本为4.12.0:

到这个链接里找到4.12.0对应的Groovy-Eclipse的Release update site链接:
https://github.com/groovy/groovy-eclipse/wiki

https://dist.springsource.org/release/GRECLIPSE/e4.12

在Eclipse的插件安装页面里,随便维护一个site name,把上面wiki里拷贝出来的url维护进去:

选中所有解析出来的插件,全部安装:



重启Eclipse后,就能看到Groovy的项目创建向导了:




选择Run as Groovy script,即可在Eclipse里执行Groovy脚本:

可以直接在Eclipse的console控制台看到结果:

下面这些包默认已经被导入了,不需要使用import再次显式导入:

  • java.io.*
  • java.lang.*
  • java.math.BigDecimal
  • java.math.BigInteger
  • java.net.*
  • java.util.*
  • groovy.lang.*
  • groovy.util.*

Groovy的运行时方法调用抉择

运行时,Groovy根据参数类型决定具体哪一个方法被执行。而Java恰恰相反,被调用的方法根据参数类型,在编译期间就已经定下来了。

In Groovy, the methods which will be invoked are chosen at runtime. This is called runtime dispatch or multi-methods. It means that the method will be chosen based on the types of the arguments at runtime. In Java, this is the opposite: methods are chosen at compile time, based on the declared types.

下列代码的打印结果是1:

int method(String arg) {
	return 1;
}
int method(Object arg) {
	return 2;
}
Object o = "Object";
int result = method(o);

println result

在Groovy里,成对的大括号是声明闭包用的,因此定义数组的语法改用中括号:

int[] array = [1, 2, 3]

Groovy里的闭包,it为默认参数:

Closures may have 1…N arguments, which may be statically typed or untyped. The first parameter is available via an implicit untyped argument named it if no explicit arguments are named. If the caller does not specify any arguments, the first parameter (and, by extension, it) will be null.

That means that a Groovy Closure will always have at least one argument, called it (if not specified otherwise) and it will be null if not given as a parameter.

看个用Groovy读取本地文件内容的代码,和Java比起来短小精悍:

我的文件内容:

输出:

这种方法也行:

完整代码:

new File('c:\\temp\\1.txt').eachLine('UTF-8') {
	println "new line->" + it
 }

 
 new File('c:\\temp\\1.txt').withReader('UTF-8') { reader ->
	 reader.eachLine {
		 println "Another line:" + it
	 }
  }

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。