我使用 GWT 2.7 在 JavaScript 中存储和检索长值,如下面的代码所示:
private final native void setTime(Long time) /*-{
return this.myLong;
}-*/;
private final native Long getTime() /*-{
return this.myLong;
}-*/;
private void start() {
Date date = new Date();
long time = date.getTime();
setTime(time);
long time2 = getTime();
}
注意:我始终可以确定 JavaScript 部分中的 long 值不会更改,因为这些值只是在 JavaScript 中从数据库中存储和检索。
这是在 JavaScript 中输入和输出长值的最佳方式吗?使用 double 值然后转换为 long 会更好吗?
最佳答案
要补充 Chri 的答案,JavaScript 实际上无法跟踪 long
的完整值!它可以跟踪的最精确的数字相当于 Java double
(64 位 IEEE 754 float ),并且有一些合法值在转换为 double
和再次回来,不再是同一个号码!
如果您只是读取属性并且您不关心您是否有足够的精度来实际存储它,那么不安全的长注释将起作用。如果可以,请使用 double,或者如果您想要数据库 ID 或任何当您通过 JS 看它很有趣时不会改变您的东西,请使用 String...
关于java - GWT 2.7 : Return long from JSNI best Practice,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27426869/