博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Groovy动态解析
阅读量:7251 次
发布时间:2019-06-29

本文共 1612 字,大约阅读时间需要 5 分钟。

A:前面需要说些什么吗?

B:不需要吗?

A:需要吗?

 

解析方式一:通过指定的paths来初始化GroovyScriptEngine

//通过指定的paths来初始化GroovyScriptEngineString[] paths = {"D:\\GroovyScript"};GroovyScriptEngine gse = new GroovyScriptEngine(paths);Binding binding = new Binding();binding.setVariable("input", "world");gse.run("GroovyDemo.groovy", binding);System.out.println(binding.getVariable("output"));

GroovyDemo.groovy

output = "Hello ${input}!"

 

解析方式二:通过指定的roots来初始化GroovyScriptEngine

//通过指定的roots来初始化GroovyScriptEngineString[] roots = new String[]{"src/com/ccav/javarisk/"};GroovyScriptEngine gsen = new GroovyScriptEngine(roots);GroovyObject groovyObject = (GroovyObject) gsen.loadScriptByName("HelloWorld.groovy").newInstance();String result = (String) groovyObject.invokeMethod("output", "world");System.out.println(result);

HelloWord.groovy

class TestScript {    static String output(def str) {        return "Hello " + str + ", I'm first!";    }}

 

解析方式三:创建engine实例直接解析文本内容

//创建engine实例直接解析文本内容ScriptEngineManager factory = new ScriptEngineManager();//每次生成一个engine实例ScriptEngine engine = factory.getEngineByName("groovy");System.out.println(engine.toString());assert engine != null;Bindings binding = engine.createBindings();binding.put("date", new Date());//如果script文本来自文件,请首先获取文件内容engine.eval("def getTime(){return date.getTime();}", binding);engine.eval("def sayHello(name,age){return 'Hello,I am ' + name + ',age' + age;}");Long time = (Long) ((Invocable) engine).invokeFunction("getTime", null);System.out.println(time);String message = (String) ((Invocable) engine).invokeFunction("sayHello", "zhangsan", new Integer(12));System.out.println(message);

 

转载地址:http://wphbm.baihongyu.com/

你可能感兴趣的文章
Mysql高级查询 内连接和外连接详解
查看>>
基于AWS的电子商务网站架构——Web前端
查看>>
基于险企传统资源优势的“一核三环”规划——互联网平台建设
查看>>
社交网络:有意义的不仅是邓巴数
查看>>
MySQL优化案例
查看>>
02 贝叶斯算法 - 案例一 - 鸢尾花数据分类
查看>>
场景数据互为表里!畅想2027,保险行业发展愿景
查看>>
hibernate4整合spring3出现java.lang.NoClassDefFoundError: [Lorg/hibernate/engine/FilterDefinition;...
查看>>
港科大教授权龙:三维视觉重新定义人工智能安防
查看>>
数据库巡检项
查看>>
通过阿里云APP,可以进行ECS,RDS 等实例的管理
查看>>
HBase-Region太多的问题简单总结
查看>>
说说我为什么看好Spring Cloud Alibaba
查看>>
STM32学习笔记(五)——通用定时器计数延时
查看>>
Android selector shape 无效问题
查看>>
Data Lake Analytics: 使用DataWorks来调度DLA任务
查看>>
zabbix配置web监控实现网页监控
查看>>
Postgresql lock锁等待检查
查看>>
codeforces1141D题解(暴力+贪心)
查看>>
Java Spring Boot 2.0实战MyBatis连接池阿里Druid与SQL性能监控
查看>>