【问题标题】:Bind JavaScript Equality Operator to Java Function将 JavaScript 等式运算符绑定到 Java 函数
【发布时间】:2015-02-04 16:38:44
【问题描述】:

我正在使用 Java 中的 JavaScript 引擎来评估一些字符串。我希望 JavaScript 中的 user.group == group1 评估 Java 方法 user.hasGroup(group1)。用户包含组字符串列表。

我知道我可以将函数与以下内容绑定,但我不确定如何替换相等运算符并将右侧用作参数。 (jsEngine 是我的 JavaScript 引擎)

Bindings b = jsEngine.createBindings();
b.put(String name, Object value);   
Engine.setBindings(Bindings bindings, int scope);

【问题讨论】:

  • 哇,一个关于[java][javascript]的问题;)
  • 我不相信这是可能的。我认为在某些情况下,你能做的最好的事情就是:stackoverflow.com/a/4700278/636009,但你无法将user.groupgroup1 翻译成在字符串比较下它们是等价的,是吗?

标签: java javascript scriptengine


【解决方案1】:

您可以使用jsEngine.eval("if(user.group == group1)"),捕获布尔对象并进一步决定。

【讨论】:

  • 您能详细说明一下吗?您是否建议我在定义 user.group 是什么之前评估布尔值?
  • 不,您首先使用用户数据创建绑定。我只是说基于 jsEngine.eval("if(user.group == group1)") ,您可以根据您的实现在 java 或 javascript 中执行一些操作。
  • 我认为我想要的东西是不可能的,所以我选择明确地使用user.hasGroup(group1)
猜你喜欢
  • 1970-01-01
  • 2015-10-17
  • 1970-01-01
  • 2010-11-05
  • 2011-08-28
  • 1970-01-01
  • 2013-01-28
相关资源
最近更新 更多