Rhino引擎中, 如何利用javascript 使用java 内部类?

Ray77 发布于 2015/05/08 10:25
阅读 632
收藏 0
在Rhino 引擎中, 可以实现script 调用 java代码, 但是在调用静态内部类的时候会出错. demo如下

//java
public class Out{
   public static class In {
       public String test = "Hello";
   }
}
//use inner class
Out.In in = new Out.In();
System.out.print(in.test); // 成功!!

//js
var out = new Out();    // 成功
var in = new Out.In();  // 出错
错误信息:

org.mozilla.javascript.Undefined@55516dbb is not a function, it is undefined

依照错误, 可以发现Rhino引擎在解析javascript的时候, 把内部类In()解析为了外部类Out的function, 所以出现了这个操作.  而另一个引擎Nashorn是支持对内部类操作的, 例子如下

var Float = Java.type("java.awt.geom.Arc2D$Float"); // 利用 $ 符号来处理内部类
请问各位, Rhino 中script该如何使用java 静态内部类?




加载中
返回顶部
顶部