1

从 Apigee API 代理中的 javascript 可以按预期工作:

var javaString = new java.lang.String("FooBar");    
throw "javaString: "+javaString;

但这不是:

var date = new java.util.Date();
throw "date: "+date;

并在创建对象时引发以下异常

TypeError: [JavaPackage java.util.Date] is not a function, it is object

我从 Mozilla Rhino Scripting_Java 页面尝试了很多东西,但没有运气

请有人解释我是怎么愚蠢的

4

2 回答 2

1

你不是傻。由于 Edge 环境的要求,并非所有标准类类型都允许在 JavaScript 标注中使用。

目前,应该允许这些:

java.lang.Object
java.lang.String
java.lang.Integer
java.lang.Boolean
java.lang.Long
java.lang.Double
java.lang.Float
java.lang.Short
java.lang.Byte
java.lang.Number
java.util.HashMap

当前不允许使用 java.util.Date。

于 2014-01-17T22:15:15.280 回答
1

要解决有关创建日期类型对象的原始问题,您可以执行普通的旧 JavaScript,例如:

new Date() // current date and time

new Date(milliseconds) // milliseconds since 1970/01/01

new Date(dateString)

new Date(year, month, day, hours, minutes, seconds, milliseconds)
于 2014-02-06T05:52:38.197 回答