Java 在Nashorn中直接使用原语

Java 在Nashorn中直接使用原语,java,javascript,nashorn,Java,Javascript,Nashorn,我正在开发一个利用用户脚本定制大部分体验的程序。这种设计的一个后果是,存在从int/double/float到Number和back的常量转换。转换会导致大量开销,因此是不可取的。例如: Javascript中引用的类: class FromJava { public float getNum() { return 325.753; } } Javascript(在Nashorn中执行,其中一个FromJava实例已被放入) 是否有办法防止不必要的装箱,或者这

我正在开发一个利用用户脚本定制大部分体验的程序。这种设计的一个后果是,存在从int/double/float到Number和back的常量转换。转换会导致大量开销,因此是不可取的。例如:

Javascript中引用的类:

class FromJava {
    public float getNum() {
        return 325.753;
    }

}
Javascript(在Nashorn中执行,其中一个FromJava实例已被放入)


是否有办法防止不必要的装箱,或者这是当前Nashorn实现所需的开销?

当getNum()返回整数时会发生什么?能否将Javascript对象传递给getNum(),然后用结果填充它?var-myInt=1;打印(typeof(obj.getNum(myInt)))。在java中,根据需要修改myInt。这是一个有趣的想法,我将尝试一下。它当然会有一些开销,但应该会减少。
function doMath() {
  print(typeOf(obj.getNum()); // Prints "number"
}