@用于普通Groovy脚本的CompileStatic
我不确定这是否已经可行,但是否可以只在普通groovy脚本上使用@CompileStatic,而不将脚本包装到类中 我使用GroovyClassLoader动态解析和编译脚本,因此如果脚本可以使用@CompileStatic,那就太好了。您可以添加:@用于普通Groovy脚本的CompileStatic,groovy,Groovy,我不确定这是否已经可行,但是否可以只在普通groovy脚本上使用@CompileStatic,而不将脚本包装到类中 我使用GroovyClassLoader动态解析和编译脚本,因此如果脚本可以使用@CompileStatic,那就太好了。您可以添加: 如果您在命令行上,则可以提供一个--configscript config.groovy。有一个脚本应该是什么样子的示例: withConfig(configuration) { ast(groovy.transform.CompileS
如果您在命令行上,则可以提供一个
--configscript config.groovy
。有一个脚本应该是什么样子的示例:
withConfig(configuration) {
ast(groovy.transform.CompileStatic)
}
您可以将@CompileStatic注释添加到类或方法中 它不适用于整个脚本,但您可以将其添加到脚本的某些方法或某些类中 您必须在脚本或类的导入中添加导入groovy.transform.CompileStatic 例如,您可以在GroovyConsole中尝试以下脚本,对方法注释进行注释/取消注释:
import groovy.transform.CompileStatic
@CompileStatic
void loop() {
def d1 = new Date();
int[] t = new int[32*1024*1024]
(0 .. 32*1024*1024-1).each {
it -> t[it] = it
}
def d2 = new Date();
println d2.getTime() - d1.getTime()
}
loop()
import groovy.transform.CompileStatic
@CompileStatic
void loop() {
def d1 = new Date();
int[] t = new int[32*1024*1024]
(0 .. 32*1024*1024-1).each {
it -> t[it] = it
}
def d2 = new Date();
println d2.getTime() - d1.getTime()
}
loop()