gpt4 book ai didi

javascript - 将java对象分配给node.js变量

转载 作者:太空宇宙 更新时间:2023-11-04 01:04:53 25 4
gpt4 key购买 nike

这是我使用“java”模块在node.js 中创建java 对象的代码。创建了四个 java 对象,我希望它们一起作为一个对象。所以我使用变量“args”来保存这些 java 对象。

var java = require("java");
java.classpath.push("commons-lang3-3.1.jar");
java.classpath.push("commons-io.jar");
var soap = require('soap');

var vehId = java.newInstanceSync("java.lang.Integer", 922);
var lattitude = java.newInstanceSync("java.lang.Double", 8.6717136);
var longitude = java.newInstanceSync("java.lang.Double", 76.8168311);
var GregorianCalendar = java.import('java.util.GregorianCalendar');
var time = new GregorianCalendar(2014,4,29,8,7,6);
console.log('vehId: '+vehId+'\nlattitude: '+lattitude+'\nlongitude '+longitude+'\ntime: '+time+'\n\n');

var args = {
vehicleId : vehId,
lat : lattitude,
lan : longitude,
packetTime: time
};
console.log(args);

这是我得到的输出。

vehId: 922

lattitude: 8.6717136

longitude 76.8168311

time: java.util.GregorianCalendar[time=?,areFieldsSet=false,areAllFieldsSet=false,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Calcutta",offset=19800000,dstSavings=0,useDaylight=false,transitions=6,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=?,YEAR=2014,MONTH=4,WEEK_OF_YEAR=?,WEEK_OF_MONTH=?,DAY_OF_MONTH=29,DAY_OF_YEAR=?,DAY_OF_WEEK=?,DAY_OF_WEEK_IN_MONTH=?,AM_PM=0,HOUR=8,HOUR_OF_DAY=8,MINUTE=7,SECOND=6,MILLISECOND=?,ZONE_OFFSET=?,DST_OFFSET=?]

{ 车辆 ID:922,

纬度:8.6717136,

局域网:76.8168311,

数据包时间:{}

}

有人请告诉我为什么“args”对象的“packetTime”变量没有分配“time”值?为什么显示为 {} ???

最佳答案

转换为 JavaScritp 对象后,GregorianCalendar 对象的结构并不明显。

但是它在第一个日志中起作用的原因是,在这种情况下,您将其连接到一个字符串,因此您实际上触发了公历中的 toString 方法,该方法似乎使用了该方法的 Java 实现。

换句话说,如果您执行了以下任一操作:

console.log('' + time);
console.log(time.toString());
console.log("%s", time);

您将获得预期的输出字符串。

另一方面,console.log(time) 不会调用对象的 toString 方法,而是尝试检索哈希对象中的所有键。看起来 GregorianCalendar 对象没有任何可见的可枚举属性,这就是为什么您会得到空结果。

console.log("%j", time);

关于javascript - 将java对象分配给node.js变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24058093/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com