Nashorn:如何选择构造函数来调用

时间:2014-12-09 21:23:13

标签: java javascript nashorn

我从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不是函数

3 个答案:

答案 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);