Java动态调用Groove代码(2)-GroovyScriptEngine

本文演示了如何使用GroovyScriptEngine在Java中动态调用Groovy代码,包括无参和带参的方法调用,并展示了如何设置参数和获取返回结果。

上一篇:Java动态调用Groove代码(1)-GroovyClassLoader

FunGroove.groovy

package com.chy.groovy

void print(){
    System.out.println("没有参数!!!!");
}

//执行方法
print();

FunArgGroove.groovy

package com.chy.groovy

String printArg(String name){
    System.out.println("参数:"+name);
    return "返回结果:"+name;
}

//执行方法
printArg(arg);

java

package com.chy;

import groovy.lang.Binding;
import groovy.util.GroovyScriptEngine;
import groovy.util.ResourceException;
import groovy.util.ScriptException;

import java.io.IOException;

/**
* @Title: GroovyScriptEngineApp
* @Description: 演示 GroovyScriptEngine 方式
* @author chy
* @date 2018/9/13 0:06
*/
public class GroovyScriptEngineApp {

    public static void main(String[] args) {
        try {
            // GroovyScriptEngine的根路径,如果参数是字符串数组,说明有多个根路径
            GroovyScriptEngine engine = new GroovyScriptEngine("src/main/java/com/chy/groovy/");

            Binding binding1 = new Binding();
            Object result1 = engine.run("FunGroove.groovy", binding1);
            if(null!=result1) {
                System.out.println(result1);
            }

            System.out.println("===================================");

            Binding binding2 = new Binding();
            // arg 和 参数同名
            binding2.setVariable("arg", "测试参数");
            Object result2 = engine.run("FunArgGroove.groovy", binding2);
            System.out.println(result2);

        } catch (IOException e) {
            e.printStackTrace();
        } catch (ResourceException e) {
            e.printStackTrace();
        } catch (ScriptException e) {
            e.printStackTrace();
        }
    }
}

未完待续.......................

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值