Groovy代码示例 – groovy类与脚本

groovy脚本

main方法与脚本(script)

Main.groovy

class Main {
    static void main(String... args) {
        println 'Groovy world!'
    }
}
  • 1)定义了一个类,类名任意
  • 2)定义main方法
  • 3)main方法体

以上来自于java中的可执行方法的写法,在groovy中想执行一段代码其实有更简洁的方式:

println 'Groovy world!'

效果是一样,只是写法更加简单,上面就是一个最简单的groovy脚本。

script类

还是看这个脚本的例子:

println 'Groovy world!'

脚本最终都要是编译成为class的,groovy编译器会将脚本编译为class并将脚本内容编译为run方法的方法体。因此上面的脚本相当于以下代码:

import org.codehaus.groovy.runtime.InvokerHelper

class Main extends Script {
    def run() {
        println 'Groovy world!'
    }
    static void main(String[] args) {
        InvokerHelper.runScript(Main, args)
    }
}
  • 1)继承自Script类
  • 2)有返回值的run方法定义
  • 3)脚本的内容置于run方法内部
  • 4)自动产生main方法
  • 5)委托执行run方法

script方法

在script中是这样定义方法的:

//方法定义
int fib(int n) {
    n < 2 ? 1 : fib(n-1) + fib(n-2)
}
//方法调用
assert fib(10)==89

你可以将脚本和方法混合放在一起。编译器会将脚本代码编译到方法中,将脚本方法编译到类中。

参考以下代码:

println 'Hello'                                 
int power(int n) { 2**n }                       
println "2^6==${power(6)}"
  • 1)输入语句
  • 2)定义方法
  • 3)调用方法

上面的脚本相当于以下代码:

import org.codehaus.groovy.runtime.InvokerHelper

class Main extends Script {
    int power(int n) { 2**n}
    def run() {
        println 'Hello'
        println "2^6==${power(6)}"
    }
    static void main(String[] args) {
        InvokerHelper.runScript(Main, args)
    }
}
  • 1)power方法被编译到类中
  • 2)其他普通脚本被编译到run中

虽然脚本都被编译成为类,但这个过程对于用户来说是透明的。一旦脚本执行异常,抛出的异常中指向的行号是跟脚本对应的而不是相对应的类代码。

版权声明:
作者:Joe.Ye
链接:https://www.appblog.cn/index.php/2023/05/07/groovy-code-example-class-script/
来源:APP全栈技术分享
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
海报
Groovy代码示例 – groovy类与脚本
groovy脚本 main方法与脚本(script) Main.groovy class Main { static void main(String... args) { println 'Groovy world!' } } ……
<<上一篇
下一篇>>
文章目录
关闭
目 录