【问题标题】:invoke a java method with int arguments from javascript/rhino使用来自 javascript/rhino 的 int 参数调用 java 方法
【发布时间】:2023-03-12 16:51:01
【问题描述】:

如何从 javascript/rhino 调用具有整数和浮点数的重载 java 方法?

例如,我如何从 javascript/rhino 调用 java 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 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

【问题讨论】:

    标签: java javascript type-conversion rhino


    【解决方案1】:

    The mechanism is documented here.基本上可以通过以下语法访问构造函数:

    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)']
    function <init>(java.awt.color.ColorSpace,float[],float)() {
            [native code, arity=0]
    }
    

    【讨论】:

      猜你喜欢
      • 2012-05-16
      • 2014-06-13
      • 1970-01-01
      • 2010-09-27
      • 2023-03-23
      • 1970-01-01
      • 2012-10-01
      • 2012-11-08
      • 2013-01-26
      相关资源
      最近更新 更多