gpt4 book ai didi

rhino - 从 Rhino 切换到 Nashorn

转载 作者:行者123 更新时间:2023-12-02 01:31:24 25 4
gpt4 key购买 nike

我有一个 Java 7 项目,该项目大量使用 Javascript 来编写各种功能的脚本。到目前为止,我一直使用 Rhino 作为脚本引擎。我现在想迁移到 Java 8,这也意味着我将用 Nashorn 取代 Rhino。

Nashorn 与 Rhino 的兼容性如何?我可以使用它作为直接替代品吗?或者我是否可以预期我的某些脚本将不再工作并且需要移植到新引擎?是否存在 Nashorn 不支持的 Rhino 常用功能?

最佳答案

一个问题是 Nashorn 默认情况下无法再使用 importPackage(com.organization.project.package); 将整个 Java 包导入全局范围。

但是,有一个简单的解决方法:通过将此行添加到脚本中,您可以启用 Rhino 的旧行为:

load("nashorn:mozilla_compat.js");

我遇到的另一个问题是,在 java 和 javascript 之间传递数据时,某些类型转换的工作方式不同。例如,当您将 Javascript 数组传递给 Java 时到达的对象不能再转换为 List ,但它可以转换为 Map<String, Object> 。作为解决方法,您可以使用 Java.to(array, Java.type("java.util.List")) 将 Javascript 数组转换为 Javascript 代码中的 Java 列表。

关于rhino - 从 Rhino 切换到 Nashorn,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22502630/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com