在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 ......
}
答案 0 :(得分:6)
尝试
private transient NumberFormat numberFormatterDontSerializeMe;
答案 1 :(得分:0)
此注释与transient关键字的含义相同,但它 除GWT之外的所有序列化系统都会忽略它。通常是 transient注释应优先于此注释使用。 但是,对于与多个序列化系统一起使用的类型,它可以是 有用。
请注意,GWT实际上将接受任何名为的注释 GwtTransient为此目的。这样做是为了允许库 支持GWT序列化而不创建直接依赖 GWT分配。
http://www.gwtproject.org/javadoc/latest/com/google/gwt/user/client/rpc/GwtTransient.html