Rhino:在Javascript实现中访问Java接口变量
Rhino:如何在Javascript实现中访问Java接口变量 我为另一方公开了一个java接口,让他们在javascript中提供同样的实现Rhino:在Javascript实现中访问Java接口变量,java,javascript,interface,rhino,Java,Javascript,Interface,Rhino,Rhino:如何在Javascript实现中访问Java接口变量 我为另一方公开了一个java接口,让他们在javascript中提供同样的实现 public interface APIInterface{ public static APIUtils util = new APIUtils(); public ArrayList getAllObjects(Object aTransaction); } Javascript实现: /** Core Interface M
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上测试
在接口上,所有变量都隐式地公共静态final