java可以用groovy_groovy 在Java项目上使用Groovy

示例

Groovy可以访问所有Java类,实际上Groovy类是Java类,可以直接由JVM运行。如果您正在从事Java项目,那么使用Groovy作为一种简单的脚本语言来与Java代码进行交互就变得很容易了。

为了使事情变得更好,几乎所有Java类都可以重命名为.groovy并进行编译和运行,并且可以像原来一样正常工作,groovy几乎是Java的超级集,这是groovy的既定目标。

Groovy有一个REPL。  groovysh如果您的类路径设置正确,则Groovy附带了该类,可用于快速实例化和测试Java类。例如,如果您classpath指向eclipse的“ classes / bin”目录,则可以将文件保存在eclipse中,跳转groovysh并实例化该类以对其进行测试。

使用Groovy而不是仅使用Java的原因是:类加载器非常擅长在编译新类时使用它们。在开发过程中,通常不需要退出/重新启动groovysh。

语法为TERSE。这对于可维护的代码不是很好,但是对于脚本和测试,它可以极大地削减代码。它要做的一大事情是消除检查的异常(或更准确地说,将所有检查的异常转换为未检查的异常)。这将变成这样的代码(一秒钟后打个招呼):

class JavaClass {

public static void main(String[] args) {

try {

Thread.sleep(1000);

} catch(InterruptedException e) {

// 您不应该留下一个空的catch块,但是谁在乎这是否被打断了???

}

System.out.println("Hello!");

}

}

进入Groovy的:

Thread.sleep(1000)

print "Hello!"

Groovy还具有非常严格的初始化语法。这使您无需考虑数据即可随意指定数据:

在Java中初始化映射,您可能应该执行以下操作:

String[] init = { "1:Bill", "2:Doug", "3:Bev" };

// 请注意,其余的这些可以放在函数中并重用,或者可以在库中找到,但是我似乎总是不得不编写此函数!

Map m = new HashMap();

for(String pair : int) {

String[] split = pair.split(":");

m.put(new Integer(split[0]), split[1])

}

这还不错,但是还有其他需要维护的地方。在常规中,您将只使用:

Map map = { 1 : "Bill", 2 : "Doug", 3 : "Bev" }

您完成了。列表语法同样简单。

另一个真正的大优势是groovy的闭包语法。它非常简洁有趣,维护起来有些困难,但是对于脚本来说,这并不是优先考虑的事情。例如,这是一些常规代码,用于在当前目录中查找所有.txt包含该单词Hello的文件:

println new File('.').files.findAll{ it.name.endsWith('.txt') && it.text.contains('Hello') }.collect{it.name}

本示例使用了一些“ Groovy”技巧:.files指的是getFiles()方法-groovy可以随意在getter / setter和属性语法之间切换

it.指代迭代的当前元素。{ it }是的快捷方式{ it -> it },例如:

[1、2、3] .collect {它^ 2} == [1、4、9]

it.text(it文件在哪里)使用groovy添加的方法File来检索文件的整个文本。这在脚本中非常有用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值