Rhino:如何在Javascript实现中访问Java接口变量?
我向其他方公开了一个 java 接口,让他们在 javascript 中提供相同的实现。
public interface APIInterface{
public static APIUtils util = new APIUtils();
public ArrayList getAllObjects(Object aTransaction);
}
JavaScript 实现:
/** Core Interface Method **/
new Object() {
getAllObjects: function(tran) {
tran.set(..); //OK
tran.set(..); //OK
util.callSomeFunction(); //Fails here..Rhino doesn't understand util..
}
}
我希望接口的 javascript 实现能够理解接口变量util
无需将其作为附加参数传递给函数或将其添加到ScriptEngine
。这在技术上可能吗?
对于界面...
package foo;
public interface Iface {
String X = "Hello, World!";
void invoke();
}
...静态成员¹X
可以通过两种方式访问。
1)通过类型:
var x = Packages.foo.Iface.X;
2)通过反射:
var impl = new Packages.foo.Iface({
invoke : function () {
var x = this.getClass().getField("X").get(null);
java.lang.System.out.println(x);
}
});
impl.invoke();
在 Rhino 1.7R4 上测试。
``所有变量都是隐式的public static final
在接口上。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)