Groovy入门

安装环境

  1. 安装chocolatey,然后安装groovy(也可自行下载包解压,配置环境变量)
    choco install groovy

  2. 验证安装
    groovy -version

    如果验证时出现错误:
    'findstr' 不是内部或外部命令,也不是可运行的程序或批处理文件
    在path中追加:%SystemRoot%/system32; %SystemRoot%;
Hello,Groovy
  1. 命令行简洁输出
    groovy -e "println 'Hello,Groovy!'"

  2. 新建Hello.groovy文件,输入以下内容(groovy的语法要求较为宽松)
    println "Hello,Groovy!"

    或者
    class HelloGroovy { static void main(args) { println "Hello,Groovy!" } }

运行脚本
groovy Hello.groovy

Groovy与Java对比 ? Groovy时基于Java的语言,权限修饰符默认为public(getter\setter可省略),参数为动态参数(可用def定义变量,也可省略),省略括号和封号,将上面代码改为以下代码依然可以运行
public class HelloGroovy { public static void main(String[] args) { System.out.println("Hello,Groovy!"); } }

特殊使用方式
循环
def cycle(val){ for(i in 1..5){ println val } }

def cycle(val){ for(i in 0..<5){ cycle val } }

def cycle(coll){ coll.each{ value -> println value } coll.each{ key,value -> println "${key} : ${value}" } }def strToUp(str){ str?.toUpperCase() }

集合
//定义 def coll = 0..4 def coll = ["Groovy", "Java", "Ruby"] Collection coll = new ArrayList(); //添加 coll.add("Groovy"); coll.add("Java"); coll << "Python"

Groovy\Java互相调用 Groovy调用Java
import java.util.Random; class Test { static void main(args){ Random random = new Random(); for(i in 0..<10){ println random.nextInt(100); } } }

Java调用Groovy
  1. 直接调用
    //groovy类 class GroovyClazz { String sayHello(){ return "Hello,groovy"; } }

    public class Test { public static void main(String[] args){ GroovyClazz demo = new GroovyClazz(); System.out.println(demo.sayHello()); } }

  2. 【Groovy入门】反射调用
    public class Test { public static void main(String[] args) throws Exception{ ClassLoader clazzLoader = getClass().getClassLoader(); GroovyClassLoader loader = new GroovyClassLoader(clazzLoader); Class groovyClass = loader.parseClass(new File("demo/GroovyClazz.groovy")); GroovyObject groovyObj = (GroovyObject) groovyClass.newInstance(); System.out.println( groovyObj.invokeMethod("sayHello",null)); } }

    推荐阅读