使用 Rhino 从评估的 JS 中获取函数名称及其参数

2024-01-03

我在用着Rhino https://www.mozilla.org/rhino/。做完之后

Context cx = Context.enter();
Scriptable scope = cx.initStandardObjects();
cx.evaluateString(scope, "function f(x,y){ return x+y}", "<cmd>", 1, null);

我想知道有一个函数的名称f和两个参数x and y但找不到任何可以帮助我的方法。


尝试使用下一个代码。

package com.qarea.rhinotest;

import org.mozilla.javascript.Context;
import org.mozilla.javascript.Scriptable;

public class RhinoTest {

    public static void main(String[] args) {
        Context cx = Context.enter();
        Scriptable scope = cx.initStandardObjects();
        cx.evaluateString(scope, "function f(x,y){ return x+y}", "<cmd>", 1, null);
        try {
            String result = (String) cx.evaluateString(scope, "f.toString()", "<cmd>", 1, null);
            System.out.println(result);
        } catch (org.mozilla.javascript.EcmaError ex) {
            System.out.println(ex.getMessage());
        }
    }
}
//  Maven dependency
//    <dependency>
//      <groupId>org.mozilla</groupId>
//      <artifactId>rhino</artifactId>
//      <version>1.7R4</version>
//    </dependency>

输出是:

function f(x, y) {
    return x + y;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Rhino 从评估的 JS 中获取函数名称及其参数 的相关文章

随机推荐

  • Google App Engine——Java 还是 Python? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我注意到这是在以下帖子 https stackoverflow com questions 1085898 choosing java vs p
  • 如何使用 vue-i18n 加载我真正需要的语言文件?

    使用 vue i18n 可以很容易地翻译你的 Vue js 应用程序 但随着项目的增长 您不想加载所有语言的所有消息 大多数用户从不切换语言 我们为每种语言都有单独的域 并且切换语言的情况极为罕见 所以 vue i18n 似乎支持延迟加载
  • Kubernetes 上的多代理 Kafka 如何设置 KAFKA_ADVERTISED_HOST_NAME

    我当前包含 3 个 Kafka 代理的 Kafka 部署文件如下所示 apiVersion apps v1beta1 kind StatefulSet metadata name kafka spec selector matchLabel
  • 如何在 Android 中在按钮上显示动态文本并自动调整其大小?

    我正在开发一个项目 需要我根据用户在按钮上的选择来显示一些动态文本 我知道如何进行文本显示部分 但我一直困惑于如何在固定大小的按钮上正确显示不同的文本 例如 苹果 和 我有一个苹果 如何才能达到显示 苹果 时文字尺寸变大适合按钮 而显示 我
  • pylint 1.4 报告所有 C 扩展上的 E1101(无成员)

    我们一直是pylint 它的静态分析已经成为我们所有 python 项目的关键部分 并且节省了大量的时间来追踪隐藏的错误 但从 1 3 gt 1 4 升级后 几乎所有编译的 c 扩展都会导致 E1101 no member 错误 之前运行完
  • 如何在Python中合并两个嵌套的字典?

    我有两个嵌套的字典数据 我想将它们合并以在 python 中创建一本字典 词典数据 dict1 employee dev1 Roy dict2 employee dev2 Biswas 现在我试图用它们创建一个像下面这样的字典 所需输出 d
  • 从文件路径中提取文件扩展名

    如何提取给定文件路径的文件扩展名作为字符 我知道我可以通过正则表达式来做到这一点regexpr alnum x 但想知道是否有内置函数可以处理这个问题 使用 R 基本工具很容易找到这种东西 例如 路径 无论如何 加载tools打包并读取 f
  • 允许使用 docker-machine 配置的主机中存在不安全的注册表

    有没有什么可以配置的 允许不安全 ssl用于使用 docker machine 创建的 docker 守护进程 命令 docker machine create driver virtualbox dev eval docker machi
  • 不同状态下不同的词法分析器规则

    我一直在为 HTML 中嵌入的某些模板语言 FreeMarker 开发解析器 例如 abc h1 Welcome user lt if user Big Joe gt our beloved leader h1 p Our latest p
  • 是否可以创建一个没有 EOF 标记的文件?

    我们有一个读取平面文件并解析数据的应用程序 该文件不包含用于进行校验和的标头信息或总数据 所以我想创建测试用例以确保我们的应用程序正确处理 不完整 文件 有没有办法创建没有 EOF 标记的平面文件 也许有一个工具可以用来从现有文本文件中删除
  • 仅允许管理员删除文件?

    我正在编写一个 C 应用程序 我想设置 在应用程序启动时 权限 以便只有管理员才能删除应用程序使用的文件 所有其他用户不应删除它或修改其权限 应保护该文件免受标准文件系统使用的影响 因此 除了管理员之外 没有人可以删除它 只有管 理员应该能
  • DOMDocument::loadHTMLFile() 修改用户代理

    我使用 PHP 在 DOM 树中加载网站 有没有办法修改使用发送的用户代理DOMDocument loadHTMLFile function parseThis url html new DOMDocument html gt loadHt
  • 在 Android 应用程序中播放背景声音

    我想在我制作的应用程序中播放背景声音 帮我看看我该怎么做 这是完整的代码 public class Numbers extends Activity public static MediaPlayer mp null Override pr
  • input['file']accept="image/*" 用 Chrome 打开对话框太慢了

    当我使用
  • Anaconda 3.5(64位Windows)安装cx_Oracle

    我已经安装了适用于 Windows 64 位的 Anaconda 3 5 并且需要使用包 cx Oracle 连接到 Oracle 数据库 我尝试使用 anaconda 方式 conda install c https conda anac
  • 运行 json_encode 后替换 \r\n (换行符)

    因此 当我运行 json encode 时 它 也会从 MySQL 获取 r n 我尝试重写数据库中的字符串但无济于事 我尝试将 MySQL 中的编码从默认的 latin1 swedish ci 更改为 ascii bin 和 utf8 b
  • Unicode 字符使用统计[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找有关文本文档 带有任何标记 中 Unicode 字符使用情况的一些统计数据 谷歌搜索没有结果 背景 我目前正在开发一种基于有限状
  • 是否有支持多字节的 Postgresql Levenshtein?

    当我使用模糊匹配编辑带有变音符号的函数会返回错误 多字节无知的结果 select levenshtein a x levenshtein 2 注意 第一个字符是一个 a 下面有一个变音符号 我复制到这里后它没有正确呈现 The 模糊匹配文档
  • 在 pandas DataFrame 中搜索列

    我需要获取 pandas DataFrame 的列名称 其中列与 numpy 数组中的列匹配 Example import numpy as np import pandas as pd x pd DataFrame data 0 0 1
  • 使用 Rhino 从评估的 JS 中获取函数名称及其参数

    我在用着Rhino https www mozilla org rhino 做完之后 Context cx Context enter Scriptable scope cx initStandardObjects cx evaluateS