2010-11-16 21 views
6

Tarih ve Uzun türlerden ve Kaplama Türlerinden bazı hatalar alıyorum. Her ikisi de GWT JSNI'de izin verilmeyen uzun kullanır. Tarih, getTime() yoluyla uzun süre serileştirir.GWT OverlayTypes Tarih ve Uzun

Ne (ve o iş gibi görünüyor) şu anda yapıyorum geçerli: JAVA GELEN

GWT GELEN

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

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

public String getDate() { 
return String.valueOf(date.getTime()); 
} 

(kullanma 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()));} 
(json için seri hale getirmek için Jackson kullanma)

Bu, uzun ve diğer özel tiplerle uğraşmak için daha iyi bir yaklaşım mı?

Teşekkür ederim.

cevap

3

JS Date nesnesinin etrafında, ince bir JSO sarıcısı olan tarihler için JsDate var.

Javascript uzun süredir sahip olmadığı için çok uzunlar. Tüm sayılar 53-bit çiftler, bit Twitter recently olan bir gerçektir.

+0

Teşekkür ederim! JsDate hakkında bir şey bilmiyordum. GWT Long emulation ile ne yapıyor? Yaptığım şekilde Uzun öykünme ile büyük bir sayı tutabilir miyim? –

+2

GWT, uzun sayıları bir çift sayı olarak öykünür, yani çalışacakları anlamına gelir, ancak aynı zamanda verimsiz olurlar. Sonuç olarak, mümkün olduğunda ints veya çiftleri kullanın. Daha fazla bilgi için: http://code.google.com/webtoolkit/doc/latest/DevGuideCodingBasicsCompatibility.html –

+0

Ve ek olarak: http://code.google.com/webtoolkit/doc/latest/DevGuideCodingBasicsJSNI.html#important some önerilen geçici çözümler. –