• 测试技术
  • 博客
  • 视频
  • 开源
  • 论坛
  • 沙龙
  • 下载
  • 杂志
  • 招聘

字号: | 推荐给好友 上一篇 | 下一篇

动态调用动态语言,第 1 部分: 引入 Java 脚本 API

发布: 2008-6-30 14:40 | 作者: 不详 | 来源: 领测软件测试网编辑整理 | 查看: 58次 | 进入领测软件测试网论坛讨论

领测软件测试网

t{8DY_-|'g?*H+E 软件测试技术门户^ [wN ]1p1sZ n

清单 3 显示了两个有关的方法:defineScriptFunction() 和 invokeScriptFunctionFromEngine()。defineScriptFunction() 方法还使用一段硬编码的 JavaScript 代码调用脚本引擎的 eval() 方法。但是有一点需要注意,该方法的所有工作只是定义了一个 JavaScript 函数 sayHello()。并没有执行任何代码。sayHello() 函数只有一个参数,它会使用 println() 语句将这个参数输出到控制台。脚本引擎的 JavaScript 解释器将这个函数添加到全局环境,以供后续的 eval 调用使用(该调用发生在 invokeScriptFunctionFromEngine() 方法中,这并不奇怪)。 软件测试技术门户x }W7u ] t lP \

软件测试技术门户L1R#vk_] ssa;_


jRF'^|svZ清单 3. defineScriptFunction 和 invokeScriptFunctionFromEngine 方法
.c%q)W3EX1[n/~*A%r                软件测试技术门户:[Z b)B9Of7H
private static void defineScriptFunction(ScriptEngine engine) throws ScriptException {软件测试技术门户"P/@H.g)M-B W$pk)i5x
    // Define a function in the script engine软件测试技术门户B(N{/DS1\le s
    engine.eval(
&K3WXm8wbD q        "function sayHello(name) {" +
Z/Ye4@V6J        "    println('Hello, ' + name)" +软件测试技术门户^%A(} ^h8G?8x1Yj
        "}"
)OP_/f,uV m[W    );软件测试技术门户i jG*RFFz4Y
}

`_!wc8V k0VeN z

l \)A3A eprivate static void invokeScriptFunctionFromEngine(ScriptEngine engine)
Cn,T