首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用Rhino将Java类中的方法作为全局函数添加到Javascript中?

如何使用Rhino将Java类中的方法作为全局函数添加到Javascript中?
EN

Stack Overflow用户
提问于 2010-03-31 19:06:49
回答 4查看 8.1K关注 0票数 13

我有一个简单的Java类,它有一些方法:

代码语言:javascript
复制
public class Utils {
    public void deal(String price, int amount) {
        // ....
    }
    public void bid(String price, int amount) {
        // ....
    }
    public void offer(String price, int amount) {
        // ....
    }
}

我想创建这个类的一个实例,并允许Javascript代码直接调用这些方法,如下所示:

代码语言:javascript
复制
deal("1.3736", 100000);
bid("1.3735", 500000);

我现在唯一能想到的办法就是用

代码语言:javascript
复制
ScriptEngine engine = new ScriptEngineManager().getEngineByName("js");
engine.put("utils", new Utils());

然后在Javascript代码中使用utils.deal(...)。我还可以用Javascript为每个方法编写包装器函数,但应该有一种更简单的方法来自动为类的所有公共方法执行此操作。

EN

Stack Overflow用户

发布于 2013-10-05 19:11:07

如果您使用rhino API而不是这个答案中解释的ScriptEngine API,这是可能的:https://stackoverflow.com/a/16479685/1089998

与Noah的答案相比,我更喜欢这种方法,因为它意味着您不需要在每次执行之前执行随机的javascript代码。

我这里有一个有效的例子:

https://github.com/plasma147/rhino-play

票数 0
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2552300

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档