Tag: 常规

跟踪Gradle脚本中每个任务的执行时间?

追踪Gradle构build脚本中的任务执行时间的最优雅方式是什么? 在最佳情况下,将时间直接logging到任务名称的相同或下一行 :buildSrc:testClasses (0.518 secs) :fooBar (28.652 secs)

Groovy – 如何比较string?

如何比较作为parameter passing的string 以下方法不起作用。 String str = "saveMe" compareString(str) def compareString(String str){ def str2 = "saveMe" if(str2==${str}){ println "same" }else{ println "not same" } } 也试过了 String str = "India" compareString(str) def compareString(String str){ def str2 = "india" if( str2 == str ) { println "same" }else{ println "not same" } }

Groovy不在collections

看看列表中是否有东西的常规方法是使用“in” if('b' in ['a','b','c']) 但是,您如何很好地了解某件东西是否不在集合中? if(!('g' in ['a','b','c'])) 似乎凌乱和“!” 隐藏在随便的一瞥中。 有没有更习惯性的常规方式来做到这一点? 谢谢!

groovy中的.delegate是什么意思?

我发现这个代码片段: def say = {println m} say.delegate = [m:2] say() 这明显地打印2.它是如何工作的? 哪里可以find关于.delegate文档? Google引导我进入了“Delegate Transformation”页面,它根本没有提到.delegate 。

Intellij IDEA不从Groovy项目中的@Grab导入依赖项

我有一个我正在处理的groovy脚本,它使用@Grab注释导入依赖项。 该脚本将在IDEA中运行,并从命令行运行。 但是,在IDE中,导入以红色(无法parsing)显示,并且没有自动完成导入的类。 我正在通过代理访问公司资源库,该代理已经在IDEA中configuration为Http代理(模块应该是,而且是我的本地.m2回购!) 任何人有任何想法(没有双关语!)? 我正在使用IntelliJ IDEA 12.5 Ultimate(IU-129.1135),JRE 1.7和Groovy 2.1.6

在groovy,有没有办法来检查一个对象是否有一个给定的方法?

假设我有一个对象someObj的不确定types,我想要做的事情如: def value = someObj.someMethod() 如果不能保证“someObj”实现了someMethod()方法,如果没有,就返回null 。 在Groovy中是否有类似的instanceof呢,还是我需要用一个instanceof检查来包装if语句?

调用包含在string中的方法的名称

我如何根据Groovy中的string值调用方法? 例如,而不是 switch (val) { case "one": Obj.one() break case "two": Obj.two() break } 我想做一些像obj.val其中val包含“ 一”或“两”而不是case语句。

没有声明类可以创build对象吗?

没有声明类可以创build对象吗? 像在JavaScript中一样obj = {a: '1'}; console.log(obj.a) obj = {a: '1'}; console.log(obj.a)

Groovy,“试用资源”的build筑模拟

我是Groovy的新手。 在使用I / Ostream时,我曾经在我的Java代码中使用“try-with-resources”构造。 你能不能请教,Groovy有没有类似这样的构造?

如何从常规的返回函数接受多个参数

我想从常规编写的函数返回多个值,并接收它们,但我得到一个错误 class org.codehaus.groovy.ast.expr.ListExpression,其值为[a,b],是一个不好的expression式,因为赋值操作符的左侧 我的代码是 int a=10 int b=0 println "a is ${a} , b is ${b}" [a,b]=f1(a) println "a is NOW ${a} , b is NOW ${b}" def f1(int x) { return [a*10,a*20] }