Foo
という名前の静的メソッド (注目) が 1 つしかないクラスがありbar()
ます。bar()
ランタイム スクリプト (この場合は Javascript) を介してアクセスする必要があります。
final ScriptEngineManager factory;
factory = new ScriptEngineManager();
factory.put("foo", new Foo());
上記は機能しますが、私には少し奇妙に思えます。具体的には、新しい Foo を作成したくありません。Foo
public であるため、新しいオブジェクトをインスタンス化せずに、スクリプト ファクトリにそれを知らせる方法が必要です。試してみfactory.put("foo", Foo.class);
ましたが、うまくいきませんでした。また、Javascriptコードでパッケージを指定しようとしました。
package.Foo.bar();
しかし、それもうまくいきませんでした。
Q:クラスのインスタンスをエンジンにバインドせずに、埋め込みスクリプトからクラスの静的メソッドにアクセスする方法はありますか?