GWT:com.google.GWT.user.client.rpc.SerializationException for Type';java.util.HashMap$KeySet';

GWT:com.google.GWT.user.client.rpc.SerializationException for Type';java.util.HashMap$KeySet';,gwt,Gwt,我正在获取哈希集的com.google.gwt.user.client.rpc.SerializationException异常。 起初我认为Long的HashSet都不受支持。 但是包含了这两个 有什么问题吗 我在这里发布服务方法: public Set<Long> getNamesFromIDs(Set<Long> ids) { return manager.getNamesFromIDs(ids); } 上述java.util中的类由自定义字段序列化程序

我正在获取哈希集的com.google.gwt.user.client.rpc.SerializationException异常。
起初我认为Long的HashSet都不受支持。
但是包含了这两个

有什么问题吗

我在这里发布服务方法:

public Set<Long> getNamesFromIDs(Set<Long> ids) {
    return manager.getNamesFromIDs(ids);
}

上述java.util中的类由自定义字段序列化程序序列化


GWT不支持密钥集的序列化。它没有实现可序列化接口(因此在java世界中也不可序列化)

我不明白“GWT不支持密钥集”是什么意思。您的意思是不支持该操作还是该类型?但正如这里提到的,GWT支持Set:实现了键集,并且它的内部是HashSet。它不可序列化,也不打算通过RPC发送。请尝试将密钥集的值复制到ArrayList/Hashset以通过RPC发送。
public Set<Long> getNamesFromIDs(Set<Long> styleIds) {
    List<Long> listIDs = new ArrayList<Long>(styleIds);
    Map<Long, Discount> personMap = personDAO.getStyleIdToDiscountMap(listIDs, 0);
    return personMap.keySet();
}
com.google.gwt.user.client.rpc.SerializationException: Type 'java.util.HashMap$KeySet'   
was not included in the set of types which can be serialized by this 
SerializationPolicy or its Class object could not be loaded. 
For security purposes, this type will not be serialized.: instance = [30002, 30001]