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. 反射调用

     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));
        }
    }
    

你可能感兴趣的:(Groovy入门)