私はコンストラクタ引数としてEntity
をとる基本クラスを持っています。私は、Javaオブジェクトとしてのインスタンスを持っている場合、私は追加のフィールド/メソッドを使用することはできませんが、私は場合はすることができ、私の知る限り理解されるようにJava Nashornは、JS関数を表すオブジェクトを持つときにJavaでJSオブジェクトを作成します。
Java.extend(BaseClass, {
someAbstractMethod : function() { ... },
someAdditionalField : ...,
etc
})
:私はJavaScriptで、この基本クラスを拡張し、それはこのようになりますこれは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();
}
}
...
}