1

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

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

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

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

public class myCrossDomainObject {

  private int someSerializedField;
  private string anotherSerializedField;

  @SomeAnnotationIKnowNotWhat(..)
  private NumberFormat numberFormatterDontSerializeMe;

  // rest of class ......

}
4

2 回答 2

8

尝试

private transient NumberFormat numberFormatterDontSerializeMe;
于 2009-11-30T09:29:27.123 回答
0

@GwtTransient

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

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

于 2017-09-24T01:26:39.913 回答