java groovyshell_在java中使用groovy怎么搞
展開全部
1、靜態(tài)32313133353236313431303231363533e78988e69d8331333337373538編譯,在java工程中直接寫groovy的文件,然后可以在groovy的文件中引用java工程的類,這種方式能夠有效的利用groovy自身的語言特性,例如閉包;
2、通過groovyShell類直接執(zhí)行腳本,例如:package?groovy_dsl.shell;
import?groovy.lang.Binding;
import?groovy.lang.GroovyShell;
public?class?GroovyShellEx?{
public?static?void?main(String[]?args)?{
Binding?bind?=?new?Binding();
bind.setVariable("name",?"iamzhongyong");
bind.setVariable("age",?"25");
GroovyShell?shell?=?new?GroovyShell(bind);
Object?obj?=?shell.evaluate("str?=?name+age;return?str");
System.out.println(obj);
}
}
3、通過groovyScriptEngine執(zhí)行文件或者腳本,例如:package?groovy_dsl.script;
import?groovy.util.GroovyScriptEngine;
public?class?ScriptEngine?{
public?static?void?main(String[]?args)?throws?Exception?{
GroovyScriptEngine?engine?=?new?GroovyScriptEngine("");
Object?obj?=?engine.run("src/main/java/groovy_dsl/script/script_test.groovy",?"iamzhongyong");
System.out.println(obj);
}
}
4、通過GroovyClassLoader來執(zhí)行,例如:package?groovy_dsl.classloader;
import?groovy.lang.GroovyClassLoader;
import?groovy.lang.GroovyObject;
import?java.io.File;
import?java.io.IOException;
public?class?GroovyClassLoaderEx?{
public?static?void?main(String[]?args)?throws?Exception,?IOException?{
GroovyClassLoader?loader?=?new?GroovyClassLoader();
for(int?i=0;i<100;i++){
Class>?clazz?=?loader.parseClass(new?File("src/main/java/groovy_dsl/classloader/UserDO.groovy"));
GroovyObject?clazzObj?=?(GroovyObject)clazz.newInstance();
clazzObj.invokeMethod("setName",?"iamzhongyong");
clazzObj.invokeMethod("setSex",?"Boy");
clazzObj.invokeMethod("setAge",?"26");
System.out.println(clazzObj.invokeMethod("getAllInfo",?null));
}
}
}
超強(qiáng)干貨來襲 云風(fēng)專訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生總結(jié)
以上是生活随笔為你收集整理的java groovyshell_在java中使用groovy怎么搞的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java io字符输出流_JAVA I
- 下一篇: java 锁的类型_Java锁的种类 -