Rhino Javascript编译器
我找到了使用Rhino编译器将javascript编译成java的方法。我能够让这个简单的案例工作,并在java中调用这些方法。不过,我有一些问题,希望能在这里得到解答Rhino Javascript编译器,java,javascript,rhino,Java,Javascript,Rhino,我找到了使用Rhino编译器将javascript编译成java的方法。我能够让这个简单的案例工作,并在java中调用这些方法。不过,我有一些问题,希望能在这里得到解答 如何使用方法(setTmpValue、getTmpValue、getType)和1个参数的构造函数将下面的代码编译成TestObject.class?还是不可能 函数TestObject(params) { this.type=params.type; var-tmpValue=0; this.setTmpValue=函数(va
函数TestObject(params)
{
this.type=params.type;
var-tmpValue=0;
this.setTmpValue=函数(val){tmpValue=val;};
this.getTmpValue=函数(){return tmpValue;};
this.getType=函数(){return type};
}
示例:我可以在A中调用B吗?或者在A中使用新的B()?
A.js->A.class
B.js->B.class
提前感谢您的帮助 有一种更简单的方法,无需编译;考虑到您的问题和评论,您的目标似乎是让JavaScript对象可以从Java调用 这里有一种方法: 在Java方面:
package mypackage;
public abstract class TestObject {
// insert public abstract methods
public abstract void doIt();
}
package myapplication;
public class MyApplication {
private static TestObject test;
public static void setTestObject(TestObject o) {
test = o;
}
public void doSomething() {
test.doIt();
}
}
在JavaScript方面:
var myInstance = new JavaAdapter(
Packages.mypackage.TestObject,
{
doIt: function() {
// do something
}
}
)
Packages.myapplication.MyApplication.setTestObject(myInstance);
回到Java方面:
package mypackage;
public abstract class TestObject {
// insert public abstract methods
public abstract void doIt();
}
package myapplication;
public class MyApplication {
private static TestObject test;
public static void setTestObject(TestObject o) {
test = o;
}
public void doSomething() {
test.doIt();
}
}
基本上,JavaScript对象可以实现Java接口或扩展Java抽象类。如果它们在Java端可用,Java端可以像调用Java对象一样调用它们。据我所知,那正是你想要的。如果没有,请留下澄清,我们将从那里开始。您在这里的主要动机是什么?是从Java访问JavaScript对象吗?主要动机是在JavaScript和Java之间共享逻辑(相同的代码)。如果您希望将它们编译到
.class
文件并将它们缓存到磁盘,这样就不需要重新编译脚本了,该怎么办?我在找这样的东西。