java - GWT 2.7 : Return long from JSNI best Practice

标签 java javascript html gwt

我使用 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/

相关文章:

java - 为什么警报对话框未按正确顺序显示?

java 正则表达式 特殊字符

java - 数据存储查看器中的 Google App Engine(Java) : update attribute that has been created later,

javascript - CSS:如何在文本更改时向 div 宽度添加平滑移动?

javascript - 王牌编辑器 : Why does the theme/mode not change?

javascript - JS通过HTTP批量获取数据

javascript - 如何从 Controller 的函数为范围变量赋值

jquery - 为普通类隐藏的字段设置唯一的数据属性和 ID