jdk7 新特性-Java语言的动态性-脚本语言支持api-方法调用05
来源:互联网 发布:什么软件可以学数学 编辑:程序博客网 时间:2024/06/10 17:28
package org.yla.java语言的动态性.方法的调用05;import javax.script.Invocable;import javax.script.ScriptEngine;import javax.script.ScriptEngineManager;import javax.script.ScriptException;/** * 测试调用方法 * @author Administrator */public class TestInvocable {public static void main(String[] args) throws NoSuchMethodException, ScriptException {new TestInvocable().invokeFunction();}public void invokeFunction() throws ScriptException, NoSuchMethodException{ScriptEngine engine =getJavaScriptEngine();/*funtion getName(name){println('Hello, '+name);}*/String scriptText ="function getname(name){ println('Hello, '+name); }";engine.eval(scriptText);Invocable invocable =(Invocable) engine;//这里一定要与方法名称一致invocable.invokeFunction("getname", "huochaigun");}public ScriptEngine getJavaScriptEngine() {ScriptEngineManager manager = new ScriptEngineManager();return manager.getEngineByName("JavaScript");}}
程序运行结果:Hello, huochaigun
public void invokeMethod() throws ScriptException, NoSuchMethodException{ScriptEngine engine =getJavaScriptEngine();String scriptText ="var obj ={getname: function(name){return 'Hello , '+name;}};";engine.eval(scriptText);Invocable invocable =(Invocable) engine;Object scope =engine.get("obj");Object result =invocable.invokeMethod(scope, "getname", "huochiagu -invokeMethod");System.out.println(result);}
//在脚本中实现java接口的实例public void useInterface() throws ScriptException{ScriptEngine engine =getJavaScriptEngine();String scriptText ="function getName(name){return '我的名字 ,'+name}";engine.eval(scriptText);Invocable invocable =(Invocable) engine;Greet greet =invocable.getInterface(Greet.class);System.out.print(greet.getName("huo_chai_gun"));}
package org.yla.java语言的动态性.方法的调用05;public interface Greet {public String getName(String name);}
0 0
- jdk7 新特性-Java语言的动态性-脚本语言支持api-方法调用05
- jdk7 新特性-Java语言的动态性-脚本语言支持api-语言绑定02
- jdk7 新特性-Java语言的动态性-脚本语言支持api-脚本的编译04
- jdk7 新特性-Java语言的动态性-脚本语言支持api-脚本引擎01
- jdk7 新特性-Java语言的动态性-脚本语言支持api-执行脚本上下文 03
- jdk7 新特性-Java语言的动态性-脚本语言支持api-使用案例06
- JAVA的动态性之脚本语言支持API
- Java SE 6 新特性: 对脚本语言的支持
- Java SE 6 新特性: 对脚本语言的支持
- Java SE 6 新特性: 对脚本语言的支持
- Java SE 6 新特性: 对脚本语言的支持
- Java SE 6 新特性: 对脚本语言的支持
- Java SE 6 新特性: 对脚本语言的支持
- Java SE 6 新特性: 对脚本语言的支持
- Java SE 6 新特性: 对脚本语言的支持
- Java SE 6 新特性: 对脚本语言的支持
- Java SE 6 新特性: 对脚本语言的支持
- Java SE 6 新特性: 对脚本语言的支持
- LeapMotion SDK开发,常用功能总结
- Jenkins FQA
- JS基础——JS找到合适的值
- 软件工程第一次作业
- 第十三周项目1-数组大折腾(1从前往后)
- jdk7 新特性-Java语言的动态性-脚本语言支持api-方法调用05
- uboot默认参数的修改
- Android中的Handler消息处理机制
- LeetCode Find Minimum in Rotated Sorted Array
- BaseActivity+Application的使用,捕捉异常自动重启应用
- CalendarDemo
- 解决webview关掉后还有声音
- execute immediate 用法
- POJ 2635 The Embarrassed Cryptographe