【发布时间】:2016-07-07 09:04:46
【问题描述】:
我有一个基类,它将Entity 作为其构造函数参数。我在 JavaScript 中扩展了这个基类,它看起来像这样:
Java.extend(BaseClass, {
someAbstractMethod : function() { ... },
someAdditionalField : ...,
etc
})
据我所知,如果我将其实例作为 Java 对象,我不能使用附加字段/方法,但如果它是 JavaScript 对象,我可以。那么如何用 Java 代码将这个类实例化为 JS 对象呢?
public class ScriptedEntity extends Entity implements Scripted<EntityScriptFunctions> {
private CompiledScript script;
private Object implemented_script_class;
private Object my_script_instance;
private Invocable invocable;
public ScriptedEntity(float x, float y, CompiledScript script) {
super(x, y);
invocable = (Invocable) script.getEngine();
try {
implemented_script_class = script.eval();
my_script_instance = invocable.invokeFunction("???", this); //'this' is the constructor argument
} catch (ScriptException | IllegalArgumentException | NoSuchMethodException | SecurityException e) {
e.printStackTrace();
}
}
...
}
【问题讨论】:
标签: javascript java nashorn