我从this page知道我可以选择这样的方法:
API["test(Integer[])"](1);
我如何为构造函数执行此操作?特别是,我试图从Nashorn中实例化java.awt.Color
:
var highlightColor = new java.awt.Color(1, 1, 128/255, 1);
我收到以下错误:无法在java.awt.Color方法的固定arity签名[(float,float,float,float),(int,int,int,int)]之间明确选择。 for argument types [java.lang.Integer,java.lang.Integer,java.lang.Double,java.lang.Integer]
我试过这个:
var highlightColor = new java.awt.Color["(float,float,float,float)"](1, 1, 128/255, 1);
但是这给了我这个错误:引起的:: 52 TypeError:null不是函数
答案 0 :(得分:4)
我们添加了此功能,但它仅适用于Java 8u40。确切的语法是java.awt["Color(int, int, int)"]
(签名是姓氏组件的一部分,与方法名称的工作方式一致)。您可以在此时使用早期版本8u40进行试用(计划于2015年3月发布)。
答案 1 :(得分:2)
你需要确保你传入4个整数(或者在这种情况下是浮点数),试试这个。
var highlightColor = new java.awt.Color(1.0, 1.0, 128/255, 1.0);
答案 2 :(得分:2)
通过4个整数或4个浮点数
var highlightColor = new java.awt.Color(255, 255, 128, 255);
或强>
var highlightColor = new java.awt.Color(1.0, 1.0, 128/255, 1.0);