GWT OverlayTypes日期和长

ram*_*lla 6 java gwt types overlay

我有一些来自日期和长类型和叠加类型的错误.两者都使用long,这在GWT JSNI中是不允许的.日期通过getTime()序列化.

我现在正在做的事情(似乎有效)是:

来自JAVA(使用Jackson序列化为json)

Long myLong = new Long(50)
Date myDate = new Date();

public String getMyLong()
{
return String.valueOf(myLong);
}

public String getDate() {
return String.valueOf(date.getTime());
}
Run Code Online (Sandbox Code Playgroud)

FROM GWT(使用OverlayTypes)

/*Returning a Long*/
private final native String _getEscaletaId()   /*-{ return this.escaletaId; }-*/; 
public final Long getEscaletaId() {return new Long(_getEscaletaId());}
/*Returning a Date*/
private final native String _getDate() /*-{ return this.date; }-*/; 
public final Date getDate() {return new Date(Long.valueOf(_getDate()));}
Run Code Online (Sandbox Code Playgroud)

这是处理长期和其他特殊类型的更好方法吗?

谢谢.

Jas*_*all 4

对于日期,有JsDate一个围绕 JS Date对象的薄 JSO 包装器。

Long 是有风险的,因为 JavaScript 没有 long 的概念。所有数字都是 53 位双精度数,这一事实最近引起了 Twitter 的关注

  • GWT 将长整型模拟为一对数字,这意味着它们可以工作,但效率也很低。因此,请尽可能使用整数或双精度数。更多信息请参见:http://code.google.com/webtoolkit/doc/latest/DevGuideCodingBasicsCompatibility.html (2认同)