使用javascript/rhino中的int参数调用java方法
如何从javascript/rhino调用带有整数和浮点的重载java方法 例如,如何从javascript/rhino调用java.awt.Color(int,int,int)构造函数? 我已经处理了下一个狙击手,但不起作用:使用javascript/rhino中的int参数调用java方法,java,javascript,type-conversion,rhino,Java,Javascript,Type Conversion,Rhino,如何从javascript/rhino调用带有整数和浮点的重载java方法 例如,如何从javascript/rhino调用java.awt.Color(int,int,int)构造函数? 我已经处理了下一个狙击手,但不起作用: var Integer = java.lang.Integer; var color = new java.awt.Color(12,58,92); // it invokes java.awt.Color(float,float,float) and throws
var Integer = java.lang.Integer;
var color = new java.awt.Color(12,58,92); // it invokes java.awt.Color(float,float,float) and throws Wrapped java.lang.IllegalArgumentException: Color parameter outside of expected range: Red Green Blue.
var color = new java.awt.Color(new Integer(12), new Integer(58), new Integer(92) // it invokes java.awt.Color(float,float,float) and throws exception
var color = new Color(Integer.valueOf(12),Integer.valueOf(200),Integer.valueOf(80)); // it invokes java.awt.Color(float,float,float) and throws exception
基本上,您可以通过以下语法访问构造函数:
js> new java.awt.Color['(int,int,int)'](1,2,3); // no spaces allowed!
java.awt.Color[r=1,g=2,b=3]
或
js>java.awt.Color['(java.awt.Color.ColorSpace,float[],float)]
函数(java.awt.color.ColorSpace,float[],float)(){
[本机代码,arity=0]
}
js> java.awt.Color['(java.awt.color.ColorSpace,float[],float)']
function <init>(java.awt.color.ColorSpace,float[],float)() {
[native code, arity=0]
}