我有一个简单的 POJO,它有一些属性,其中一个是枚举。这工作得很好,但是当我将枚举属性更改为枚举列表时,GWT 给了我一个序列化异常“无法反序列化响应”。
这有效:
public class Report implements Serializable, Comparable<Report> {
private static final long serialVersionUID = 1L;
private long id;
//some more attributes, all serialize fine
private ReportCategory category; // the enumeration
public ReportSVO(){
}
//.. generated getters and setters
}
当我更改为时private ReportCategory category;
,private List<ReportCategory> categories;
我得到了(反)序列化异常。
出于预感,我将枚举更改为内部类: ( public enum ReportCategory{...}
to public class ReportCategory{
private Name categoryName;
public enum Name{...}}
) 就像魔术一样,它可以工作。这个问题让我想到了两个问题:
- 这是一个 GWT 错误吗?还是我错过了什么?
- 有没有更好的方法来解决这个问题?
枚举本身不应该是一个问题,因为它以前工作过(并且枚举默认情况下是可序列化的)。此外,当我在其他 GWT 类上忘记了无参数构造函数或具有不可序列化的属性时,序列化异常消息如下所示:“com.google.gwt.user.client.rpc.SerializationException: Type '...'不包含在可以通过此 SerializationPolicy 序列化的类型集中.."
我正在使用 GWT 2.4