GWT类:一个防止字段序列化的注释?

时间:2009-11-30 09:04:21

标签: java gwt gwt-rpc

在GWT 1.7中,我有一个用于在服务器端构造对象的类,然后在客户端(浏览器)端使用它。

在客户端,我想缓存一个服务(在本例中为NumberFormat)。这将在仅客户端方法中懒惰地初始化,并存储为字段对象。

问题是Java(1.6)构建工具将此字段解释为需要在服务器端进行序列化(即使它从未在服务器上访问过)。

我可以将对象包装在某个hander客户端,但我宁愿指定一个注释来指示该字段永远不需要为RPC传输进行序列化。

public class myCrossDomainObject {

  private int someSerializedField;
  private string anotherSerializedField;

  @SomeAnnotationIKnowNotWhat(..)
  private NumberFormat numberFormatterDontSerializeMe;

  // rest of class ......

}

2 个答案:

答案 0 :(得分:6)

尝试

private transient NumberFormat numberFormatterDontSerializeMe;

答案 1 :(得分:0)

@GwtTransient

  

此注释与transient关键字的含义相同,但它   除GWT之外的所有序列化系统都会忽略它。通常是   transient注释应优先于此注释使用。   但是,对于与多个序列化系统一起使用的类型,它可以是   有用。
  请注意,GWT实际上将接受任何名为的注释   GwtTransient为此目的。这样做是为了允许库   支持GWT序列化而不创建直接依赖   GWT分配。

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