我有一个可序列化的类,带有映射属性。本地图有 Long 作为键时,代码不起作用,而使用 String 时,代码可以工作。
这不起作用:
public class UserSession implements Serializable {
Map<Long, Date> timeQuestionAsked = new HashMap<>();
}
这确实有效:
public class UserSession implements Serializable {
Map<String, Date> timeQuestionAsked = new HashMap<>();
}
奇怪的是我也不异常(exception)。这个类被加载到 Jetty(谷歌应用程序引擎应用程序)的过滤器中,当我尝试使用 Long 键使用该类时,我收到一个奇怪的“未找到”错误。
最佳答案
其实是我使用的数据库框架objectify造成的。事实证明, map 必须以字符串作为键:https://code.google.com/p/objectify-appengine/wiki/Entities#Maps
它与可序列化无关...
关于java - 具有长键的映射在 Serialized 类中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30060729/