2009-11-30 70 views
1

在GWT 1.7中,我有一個類用於構造服務器端的對象,然後在客戶端(瀏覽器)端使用它。GWT類:防止字段序列化的註釋?

在客戶端我想緩存一個服務(在這種情況下NumberFormat)。這將在僅客戶端方法中被懶惰地初始化,並作爲字段對象存儲。

問題是Java(1.6)構建工具將此字段解釋爲需要在服務器端序列化(即使它在服務器上從未被訪問過)。

我可以在一些hander客戶端包裝對象,但我寧願指定一個註釋來表明該字段永遠不會需要序列化的RPC傳輸。

public class myCrossDomainObject { 

    private int someSerializedField; 
    private string anotherSerializedField; 

    @SomeAnnotationIKnowNotWhat(..) 
    private NumberFormat numberFormatterDontSerializeMe; 

    // rest of class ...... 

} 
+1

你試過將其標記爲暫時的? – cletus 2009-11-30 09:11:13

回答

6

嘗試

private transient NumberFormat numberFormatterDontSerializeMe; 
+0

+1爲瞬態。靜態字段也不會被序列化。 – Bluu 2010-01-22 19:41:22

0

@GwtTransient

這注解裝置同樣的事情,臨時關鍵字,但它 是不是GWT的其他所有序列化系統忽略。通常應優先使用 瞬態關鍵字優先於此註釋。 但是,對於使用多個序列化系統的類型,它可以是 有用。
請注意,GWT實際上會接受任何名爲 GwtTransient的註釋。這樣做是爲了允許庫支持GWT序列化,而不會直接依賴GWT分發。

http://www.gwtproject.org/javadoc/latest/com/google/gwt/user/client/rpc/GwtTransient.html

相關問題