0
我有一個基類,它需要Entity
作爲其構造函數參數。我在JavaScript擴展這個基類,它看起來像這樣:Java Nashorn在Java中創建JS對象時,當我有一個對象表示JS函數
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();
}
}
...
}